Create database in docker
Github :https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance**
Oracle Database container
Test Environment
Windows 10
Docker Desktop for Windows (recommand : stable) Install : https://hub.docker.com/editions/community/docker-ce-desktop-windows
โป Docker ์ค์น๋ ์๊ธฐ ๋งํฌ๋ก ๋์ฒดํ๋ค. โป Windows10 + Hyper-V์ Linux VM์ ๊ตฌ์ฑํ docker ํ๊ฒฝ์ ์ฌ์ฉํด๋ ์๊ด ์๋ค. โป WSL๋ ๊ตณ์ด ์ฌ์ฉํ์ง ์๋๋ค.
Oralce Database Container ๊ตฌ์ฑ
SingleInstance ๊ธฐ์ค์ด๋ฉฐ, Github Guide ์์๋ RAC๋ ํฌํจ๋์ด์ ธ ์๊ธดํ๋ค.
๊ตฌ์ฑ ๊ฐ๋ฅํ Database Version & Editions
Oracle Github์ 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.html
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.html ์ต์ ๋ฒ์ ์ด ์ข์ํ ๋(?) 19.5๋ฒ์ ์ SQL*Plus Package๋ฅผ ๋ค์ด๋ฐ์ ์ค์นํ๋ค.
sqlplus๋ฅผ ํตํด์ ์ ์ํ์ฌ Database ๋ฒ์ ๊ณผ ์๋์ ์ ํ์ธํ๋ค.
non-install sqlplus
๋ง์ฝ SQL*Plus ์ค์น๊ฐ ์๋์ด์ ธ ์๋ค๋ฉด docker ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด ์ปจํ ์ด๋๋ด sqlplus๋ฅผ ํตํด ์ ๊ทผํ ์๋ ์๋ค.
ํจ์ค์๋ ๋ณ๊ฒฝ
ํจ์ค์๋ ๋ณ๊ฒฝ์ ๋ค์๊ณผ ๊ฐ์ด ํ๋ค.
docker ์ค์ง
docker ์์
docker ์ญ์
์ญ์ ๋ docker๊ฐ ์ค์ง ๋ ์ํ์์๋ง ๊ฐ๋ฅํ๋ค
Mysql Container ๊ตฌ์ฑ
docker hub ๊ณต์ mysql
Dockerfile 5.6.47, 5.6 5.7.29, 5.7, 5 8.0.19, 8.0, 8, latest
docker images
docker hub์์ ๋ณ๋ ์ ์ฝ ์์ด ๋ค์ด ๋ฐ๊ฑฐ๋, ์ง์ Dockerfile๋ก ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ฉด ๋๋ค.
๋ฒ์ ์ ๋ํ ํ์ธ์ ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ๋ค.
docker volume
mysql database container๋ฅผ ์ํ volume์ ํ๋ ์์ฑํด๋ณธ๋ค. ์ด volume์ ์ปจํ ์ด๋ ๊ธฐ๋์ ๋ฐ์ดํฐ ์ฉ๋๋ก ์ฌ์ฉํ ์์ ์ด๊ณ , ๊ธฐ๋์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ ์ ์๋ค.
docker run
Mysql๊ด๋ จ ๋ค์ํ Environment variable๋ค์ด ์์ผ๋, ์ผ๋ถ๋ docker์์ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ ํ ๋ณ์(MYSQL_HOST ๊ฐ์ด)๊ฐ ์๋ค. ๋ฒ์ ์ ๋ง๋ ๋ณ์๋ค์ ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ๋ค. ํนํ MYSQL_ROOT_PASSWORD๋ ๋ฐ๋์ ํ์ํ ๋ณ์์ด๋ค.
shell ์ ์
์ ์ ํ์ธ
non-install mysql client
docker ์ค์ง
docker ์์
docker ์ญ์
์ญ์ ๋ docker๊ฐ ์ค์ง ๋ ์ํ์์๋ง ๊ฐ๋ฅํ๋ค
Last updated
Was this helpful?