Create database in docker

Github :https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance**

Oracle Database container

Test Environment

  1. Windows 10

  2. Docker Desktop for Windows (recommand : stable) Install : https://hub.docker.com/editions/community/docker-ce-desktop-windowsarrow-up-right

β€» Docker μ„€μΉ˜λŠ” 상기 링크둜 λŒ€μ²΄ν•œλ‹€. β€» Windows10 + Hyper-V에 Linux VM을 ꡬ성후 docker ν™˜κ²½μ„ μ‚¬μš©ν•΄λ„ 상관 μ—†λ‹€. β€» WSLλŠ” ꡳ이 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

Oralce Database Container ꡬ성

SingleInstance 기쀀이며, Github Guide μƒμ—λŠ” RAC도 ν¬ν•¨λ˜μ–΄μ Έ μžˆκΈ΄ν•˜λ‹€.

ꡬ성 κ°€λŠ₯ν•œ Database Version & Editions

Oracle Githubarrow-up-right에 oracle databaseλ₯Ό κ΅¬μ„±ν• μˆ˜ μžˆλŠ” Dockerfileκ³Ό 방법을 κ°€μ΄λ“œν•˜κ³  μžˆλ‹€. 참고둜 μ œκ³΅λ˜λŠ” Dockerfile sample은 λ‹€μŒκ³Ό κ°™λ‹€.

  • Oracle Database 19c (19.3.0) Enterprise Edition and Standard Edition 2

  • Oracle Database 18c (18.4.0) Express Edition (XE)

  • Oracle Database 18c (18.3.0) Enterprise Edition and Standard Edition 2

  • Oracle Database 12c Release 2 (12.2.0.2) Enterprise Edition and Standard Edition 2

  • Oracle Database 12c Release 1 (12.1.0.2) Enterprise Edition and Standard Edition 2

  • Oracle Database 11g Release 2 (11.2.0.2) Express Edition (XE)

ν•„μš”μ‚¬ν•­

μƒμ„±μ‹œ 버전과 edition별 software zipνŒŒμΌμ„ λ°›μ•„μ„œ dockerfileκ³Ό 같은 κ²½λ‘œμ— μ €μž₯ν•΄μ•Ό buildκ°€ κ°€λŠ₯ν•˜λ©°, λ‹€μŒ 경둜λ₯Ό ν†΅ν•΄μ„œ λ‹€μš΄ λ°›μ„μˆ˜ μžˆλ‹€. https://www.oracle.com/database/technologies/oracle-database-software-downloads.htmlarrow-up-right

Docker Build

docker buildν•˜λŠ” 파일이 shell script둜 λ˜μ–΄ μžˆμœΌλ‚˜, windowsμ—μ„œλŠ” λ‹€μŒκ³Ό 같은 λͺ…λ Ήμ–΄λ‘œ buildκ°€ κ°€λŠ₯ν•˜λ‹€.

Docker Build κ²°κ³Ό

oracle database 18c 18.3 standard edition 2λ₯Ό μ΄μš©ν•΄μ„œ μƒμ„±λœ docker image이닀. Software ZIP파일 μ‚¬μ΄μ¦ˆκ°€ 4.3GB인데, μ••μΆ•ν•΄μ œ 및 Oraclelinux + package μΆ”κ°€ μ„€μΉ˜λ“± ν•΄μ„œ μ΅œμ’… 이미지 μ‚¬μ΄μ¦ˆλŠ” 8.4GBκ°€ λ˜μ—ˆλ‹€. μ†Œμš”μ‹œκ°„μ€ PCν™˜κ²½λ§ˆλ‹€ λ‹€λ₯΄κ² μ§€λ§Œ, μ•½ 25λΆ„ μ†Œμš”λ˜μ—ˆλ‹€.

13.2GB의 μ΄λ―Έμ§€λŠ” μƒμ„±κ³Όμ •μ—μ„œ λ°œμƒλ˜λŠ” μž„μ‹œ μ΄λ―Έμ§€λ‘œ 보이며, μ‚­μ œν•΄λ„ λ¬΄λ°©ν•œκ²ƒμœΌλ‘œ ν™•μΈλ˜μ—ˆλ‹€.

깔끔 ^_^

docker volume

oracle database containerλ₯Ό μœ„ν•œ volume을 ν•˜λ‚˜ 생성해본닀. 이 volume은 μ»¨ν…Œμ΄λ„ˆ κΈ°λ™μ‹œ 데이터 μš©λ„λ‘œ μ‚¬μš©ν•  μ˜ˆμ •μ΄κ³ , κΈ°λ™μ‹œ 경둜λ₯Ό μ§€μ •ν• μˆ˜ μžˆλ‹€. defaultλ‘œλŠ” /opt/oracle/oradata둜 μ„€μ •ν•˜κ²Œ λœλ‹€.

docker run

Oracleκ΄€λ ¨ parametersλ₯Ό μ΄μš©ν•΄μ„œ docker containerλ₯Ό μ‹œμž‘ν•œλ‹€. -e둜 μ‹œμž‘λ˜λŠ” parameters듀은 μž…λ ₯ν•˜μ§€ μ•ŠμœΌλ©΄ default둜 μƒμ„±λ˜κ±°λ‚˜, ORACLE_PWDλ₯Ό μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ μž„μ˜ 생성후 μ•„λž˜μ™€ 같이 μ•Œλ €μ£Όκ²Œ 되며, μ΄λŠ” 좔후에 λ³€κ²½ν• μˆ˜λ„ μžˆλ‹€.

default값을 μ΅œλŒ€ν•œ μ‚¬μš©ν•˜λ©΄ λ‹€μŒκ³Ό 같은 λͺ…λ Ήμ–΄κ°€ λœλ‹€.

μ‹€μ œ 기동이 λλ‚˜κ³  λ‹€μŒκ³Ό 같은 λ©”μ‹œμ§€κ°€ λ‚˜μ˜€κΈ°κΉŒμ§€ μ•½15λΆ„ μ†Œμš”λ˜μ—ˆλ‹€.

shell 접속

sqlplus connection test

install sqlplus

sql connection ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•΄μ„œ client basic package와 sqlplus package(option)λ₯Ό μ„€μΉ˜ν•΄λ³΄μž. https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.htmlarrow-up-right μ΅œμ‹  버전이 μ’‹μ„ν…Œλ‹ˆ(?) 19.5λ²„μ „μ˜ SQL*Plus Packageλ₯Ό λ‹€μš΄λ°›μ•„ μ„€μΉ˜ν•œλ‹€.

sqlplusλ₯Ό ν†΅ν•΄μ„œ μ ‘μ†ν•˜μ—¬ Database 버전과 μ—λ””μ…˜μ„ ν™•μΈν•œλ‹€.

non-install sqlplus

λ§Œμ•½ SQL*Plus μ„€μΉ˜κ°€ μ•ˆλ˜μ–΄μ Έ μžˆλ‹€λ©΄ docker λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•΄ μ»¨ν…Œμ΄λ„ˆλ‚΄ sqlplusλ₯Ό 톡해 μ ‘κ·Όν• μˆ˜λ„ μžˆλ‹€.

νŒ¨μŠ€μ›Œλ“œ λ³€κ²½

νŒ¨μŠ€μ›Œλ“œ 변경은 λ‹€μŒκ³Ό 같이 ν•œλ‹€.

docker 쀑지

docker μ‹œμž‘

docker μ‚­μ œ

μ‚­μ œλŠ” dockerκ°€ 쀑지 된 μƒνƒœμ—μ„œλ§Œ κ°€λŠ₯ν•˜λ‹€

Mysql Container ꡬ성

docker hub 곡식 mysqlarrow-up-right

Dockerfile 5.6.47, 5.6arrow-up-right 5.7.29, 5.7, 5arrow-up-right 8.0.19, 8.0, 8, latestarrow-up-right

docker images

docker hubμ—μ„œ 별도 μ œμ•½ 없이 λ‹€μš΄ λ°›κ±°λ‚˜, 직접 Dockerfile둜 이미지λ₯Ό μƒμ„±ν•˜λ©΄ λœλ‹€.

버전에 λŒ€ν•œ 확인은 μ—¬κΈ°arrow-up-rightλ₯Ό μ°Έκ³ ν•œλ‹€.

docker volume

mysql database containerλ₯Ό μœ„ν•œ volume을 ν•˜λ‚˜ 생성해본닀. 이 volume은 μ»¨ν…Œμ΄λ„ˆ κΈ°λ™μ‹œ 데이터 μš©λ„λ‘œ μ‚¬μš©ν•  μ˜ˆμ •μ΄κ³ , κΈ°λ™μ‹œ 경둜λ₯Ό μ§€μ •ν• μˆ˜ μžˆλ‹€.

docker run

Mysqlκ΄€λ ¨ λ‹€μ–‘ν•œ Environment variable듀이 μžˆμœΌλ‚˜, μΌλΆ€λŠ” dockerμ—μ„œ μ‚¬μš© λΆˆκ°€λŠ₯ ν•œ λ³€μˆ˜(MYSQL_HOST 같이)κ°€ μžˆλ‹€. 버전에 λ§žλŠ” λ³€μˆ˜λ“€μ€ μ—¬κΈ°arrow-up-rightλ₯Ό μ°Έκ³ ν•œλ‹€. 특히 MYSQL_ROOT_PASSWORDλŠ” λ°˜λ“œμ‹œ ν•„μš”ν•œ λ³€μˆ˜μ΄λ‹€.

shell 접속

접속 확인

non-install mysql client

docker 쀑지

docker μ‹œμž‘

docker μ‚­μ œ

μ‚­μ œλŠ” dockerκ°€ 쀑지 된 μƒνƒœμ—μ„œλ§Œ κ°€λŠ₯ν•˜λ‹€

Last updated