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-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?