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
/oracle/docker-images/OracleDatabase/SingleInstance/dockerfiles/18.3.0$ ls -l
total 4457729
-rwxrwxrwx 1 root root 64 Mar 20 10:21 Checksum.ee
-rwxrwxrwx 1 root root 64 Mar 20 10:21 Checksum.se2
-rwxrwxrwx 1 root root 3532 Mar 20 10:21 Dockerfile
-rwxrwxrwx 1 root root 4564649047 Mar 20 13:48 LINUX.X64_180000_db_home.zip
-rwxrwxrwx 1 root root 1050 Mar 20 10:21 checkDBStatus.sh
-rwxrwxrwx 1 root root 905 Mar 20 10:21 checkSpace.sh
-rwxrwxrwx 1 root root 3102 Mar 20 10:21 createDB.sh
-rwxrwxrwx 1 root root 7002 Mar 20 10:21 db_inst.rsp
-rwxrwxrwx 1 root root 9407 Mar 20 10:21 dbca.rsp.tmpl
-rwxrwxrwx 1 root root 2526 Mar 20 10:21 installDBBinaries.sh
-rwxrwxrwx 1 root root 6526 Mar 20 10:21 runOracle.sh
-rwxrwxrwx 1 root root 1015 Mar 20 10:21 runUserScripts.sh
-rwxrwxrwx 1 root root 758 Mar 20 10:21 setPassword.sh
-rwxrwxrwx 1 root root 932 Mar 20 10:21 setupLinuxEnv.sh
-rwxrwxrwx 1 root root 678 Mar 20 10:21 startDB.sh
Docker Build
docker buildνλ νμΌμ΄ shell scriptλ‘ λμ΄ μμΌλ, windowsμμλ λ€μκ³Ό κ°μ λͺ λ Ήμ΄λ‘ buildκ° κ°λ₯νλ€.
docker build --force-rm=true --no-cache=true --
build-arg DB_EDITION=se2 -t oracle/database:18.3.0-se2 -f DOCKERFILE .
Docker Build κ²°κ³Ό
oracle database 18c 18.3 standard edition 2λ₯Ό μ΄μ©ν΄μ μμ±λ docker imageμ΄λ€. Software ZIPνμΌ μ¬μ΄μ¦κ° 4.3GBμΈλ°, μμΆν΄μ λ° Oraclelinux + package μΆκ° μ€μΉλ± ν΄μ μ΅μ’ μ΄λ―Έμ§ μ¬μ΄μ¦λ 8.4GBκ° λμλ€. μμμκ°μ PCνκ²½λ§λ€ λ€λ₯΄κ² μ§λ§, μ½ 25λΆ μμλμλ€.
REPOSITORY TAG IMAGE ID CREATED SIZE
oracle/database 18.3.0-se2 e493651381d5 About an hour ago 8.4GB
<none> <none> 1cac0701f076 About an hour ago 13.2GB
oraclelinux 7-slim fd84774952b5 10 days ago 118MB
13.2GBμ μ΄λ―Έμ§λ μμ±κ³Όμ μμ λ°μλλ μμ μ΄λ―Έμ§λ‘ 보μ΄λ©°, μμ ν΄λ 무방νκ²μΌλ‘ νμΈλμλ€.
REPOSITORY TAG IMAGE ID CREATED SIZE
oracle/database 18.3.0-se2 e493651381d5 About an hour ago 8.4GB
oraclelinux 7-slim fd84774952b5 10 days ago 118MB
κΉλ ^_^
docker volume
oracle database containerλ₯Ό μν volumeμ νλ μμ±ν΄λ³Έλ€. μ΄ volumeμ 컨ν μ΄λ κΈ°λμ λ°μ΄ν° μ©λλ‘ μ¬μ©ν μμ μ΄κ³ , κΈ°λμ κ²½λ‘λ₯Ό μ§μ ν μ μλ€. defaultλ‘λ /opt/oracle/oradataλ‘ μ€μ νκ² λλ€.
docker volume create oracle18c
docker volume ls
DRIVER VOLUME NAME
local oracle18c
docker run
Oracleκ΄λ ¨ parametersλ₯Ό μ΄μ©ν΄μ docker containerλ₯Ό μμνλ€.
-e
λ‘ μμλλ parametersλ€μ μ
λ ₯νμ§ μμΌλ©΄ defaultλ‘ μμ±λκ±°λ, ORACLE_PWDλ₯Ό μ§μ νμ§ μμΌλ©΄ μμ μμ±ν μλμ κ°μ΄ μλ €μ£Όκ² λλ©°, μ΄λ μΆνμ λ³κ²½ν μλ μλ€.
ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: <blablabla>
defaultκ°μ μ΅λν μ¬μ©νλ©΄ λ€μκ³Ό κ°μ λͺ λ Ήμ΄κ° λλ€.
docker run --name oracle18c -p 1521:1521 -p 5500:5500 -e ORACLE_SID=ORCLCDB -e ORACLE_PDB=ORCLPDB1 -e ORACLE_PWD=qwer123$ -e ORACLE_CHARACTERSET=AL32UTF8 -v oracle18c:/opt/oracle/oradata oracle/database:18.3.0-se2
μ€μ κΈ°λμ΄ λλκ³ λ€μκ³Ό κ°μ λ©μμ§κ° λμ€κΈ°κΉμ§ μ½15λΆ μμλμλ€.
...μλ΅...
SQL>
PL/SQL procedure successfully completed.
SQL> Disconnected from Oracle Database 18c Standard Edition 2 Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
The Oracle base remains unchanged with value /opt/oracle
#########################
DATABASE IS READY TO USE!
#########################
...μλ΅...
shell μ μ
docker exec -ti oracle18c bash
[oracle@55087facf7b7 ~]$
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 λ²μ κ³Ό μλμ μ νμΈνλ€.
sqlplus.exe pdbadmin/qwer123$@//localhost:1521/ORCLPDB1
or
sqlplus.exe system/qwer123$@//localhost:1521/ORCLCDB
or
sqlplus.exe sys/qwer123$@//localhost:1521/ORCLCDB as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Fri Mar 20 17:08:29 2020
Version 19.5.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 18c Standard Edition 2 Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
SQL> exit
Disconnected from Oracle Database 18c Standard Edition 2 Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
non-install sqlplus
λ§μ½ SQL*Plus μ€μΉκ° μλμ΄μ Έ μλ€λ©΄ docker λͺ λ Ήμ΄λ₯Ό μ¬μ©ν΄ 컨ν μ΄λλ΄ sqlplusλ₯Ό ν΅ν΄ μ κ·Όν μλ μλ€.
docker exec -ti oracle18c sqlplus pdbadmin@ORCLPDB1
SQL*Plus: Release 18.0.0.0.0 - Production on Sun Mar 22 23:33:13 2020
Version 18.3.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Enter password:
Last Successful login time: Sun Mar 22 2020 23:24:34 +00:00
Connected to:
Oracle Database 18c Standard Edition 2 Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
SQL> exit
Disconnected from Oracle Database 18c Standard Edition 2 Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
ν¨μ€μλ λ³κ²½
ν¨μ€μλ λ³κ²½μ λ€μκ³Ό κ°μ΄ νλ€.
docker exec oracle18c ./setPassword.sh q1w2e3R$
sqlplus.exe sys/qwer123$@//localhost:1521/ORCLCDB as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Mar 23 08:29:42 2020
Version 19.5.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
Enter user-name: ^C
-------------------------------------------------
sqlplus.exe sys/q1w2e3R$@//localhost:1521/ORCLCDB as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Mar 23 08:29:58 2020
Version 19.5.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 18c Standard Edition 2 Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
SQL> exit
Disconnected from Oracle Database 18c Standard Edition 2 Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
docker μ€μ§
docker stop oracle18c
docker μμ
docker start oracle18c
docker μμ
μμ λ dockerκ° μ€μ§ λ μνμμλ§ κ°λ₯νλ€
docker rm oracle18c
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λ‘ μ΄λ―Έμ§λ₯Ό μμ±νλ©΄ λλ€.
latest λ²μ λ€μ΄
docker pull mysql
νΉμ λ²μ λ€μ΄(5.7.28)
docker pull mysql:5.7.28
λ²μ μ λν νμΈμ μ¬κΈ°λ₯Ό μ°Έκ³ νλ€.
docker volume
mysql database containerλ₯Ό μν volumeμ νλ μμ±ν΄λ³Έλ€. μ΄ volumeμ 컨ν μ΄λ κΈ°λμ λ°μ΄ν° μ©λλ‘ μ¬μ©ν μμ μ΄κ³ , κΈ°λμ κ²½λ‘λ₯Ό μ§μ ν μ μλ€.
docker volume create mysql8
docker volume ls
DRIVER VOLUME NAME
local mysql8
local oracle18c
docker run
Mysqlκ΄λ ¨ λ€μν Environment variableλ€μ΄ μμΌλ, μΌλΆλ dockerμμ μ¬μ© λΆκ°λ₯ ν λ³μ(MYSQL_HOST κ°μ΄)κ° μλ€. λ²μ μ λ§λ λ³μλ€μ μ¬κΈ°λ₯Ό μ°Έκ³ νλ€. νΉν MYSQL_ROOT_PASSWORDλ λ°λμ νμν λ³μμ΄λ€.
docker run --name mysql8 -v mysql8:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=qwer123$ -p 3306:3306 -p 33060:33060 -d mysql
shell μ μ
docker exec -ti mysql8 bash
root@7d00c82d7c2b:/#
μ μ νμΈ
non-install mysql client
docker exec -ti mysql8 mysql -uroot -pqwer123$
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.19 MySQL Community Server - GPL
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select @@version;
+-----------+
| @@version |
+-----------+
| 8.0.19 |
+-----------+
1 row in set (0.00 sec)
mysql> exit
Bye
docker μ€μ§
docker stop mysql8
docker μμ
docker start mysql8
docker μμ
μμ λ dockerκ° μ€μ§ λ μνμμλ§ κ°λ₯νλ€
docker rm mysql8
Last updated
Was this helpful?