dockerコンテナ作成
dockerイメージからコンテナの作成、起動を行う方法。 dockerイメージの作成は以下を参照。
docker runコマンド
docker runコマンドを使って、コンテナの作成、起動を行います。 vagrant環境の場合、以下のようにvagrantの共有ディレクトリをコンテナと共有させると便利です。
docker run -itd -v /vagrant:/vagrant -p 1521:1521 -p 5500:5500 --name ora18xe oracle/database:18.4.0-xe
docker runコマンドのオプションについては以下を参照
例 バックグラウンド(デタッチド・モード)で動作させるサンプル
docker run -itd -p 1521:1521 -p 5500:5500 oracle/database:18.4.0-xe実行すると以下のようになります。
docker run -itd -p 1521:1521 -p 5500:5500 oracle/database:18.4.0-xe ORACLE PASSWORD FOR SYS AND SYSTEM: e3330571dbc0859e Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts: Confirm the password: Configuring Oracle Listener. Listener configuration succeeded. Configuring Oracle Database XE. Enter SYS user password: *************** Enter SYSTEM user password: ******************* Enter PDBADMIN User Password: **************** Prepare for db operation 7% complete Copying database files 29% complete Creating and starting Oracle instance 30% complete 31% complete 34% complete 38% complete 41% complete 43% complete Completing Database Creation 47% complete 50% complete Creating Pluggable Databases 54% complete 71% complete Executing Post Configuration Actions 93% complete Running Custom Scripts 100% complete Database creation complete. For details check the logfiles at: /opt/oracle/cfgtoollogs/dbca/XE. Database Information: Global Database Name:XE System Identifier(SID):XE Look at the log file "/opt/oracle/cfgtoollogs/dbca/XE/XE.log" for further details. Connect to Oracle Database using one of the connect strings: Pluggable database: 6cadfaf0e3fe/XEPDB1 Multitenant container database: 6cadfaf0e3fe Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE The Oracle base remains unchanged with value /opt/oracle ######################### DATABASE IS READY TO USE! ######################### The following output is now a tail of the alert.log: 2019-10-14T06:03:37.506257+00:00 XEPDB1(3):Resize operation completed for file# 10, old size 358400K, new size 368640K 2019-10-14T06:03:42.656691+00:00 XEPDB1(3):CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/opt/oracle/oradata/XE/XEPDB1/users01.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO XEPDB1(3):Completed: CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/opt/oracle/oradata/XE/XEPDB1/users01.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO XEPDB1(3):ALTER DATABASE DEFAULT TABLESPACE "USERS" XEPDB1(3):Completed: ALTER DATABASE DEFAULT TABLESPACE "USERS" 2019-10-14T06:03:44.140620+00:00 ALTER PLUGGABLE DATABASE XEPDB1 SAVE STATE Completed: ALTER PLUGGABLE DATABASE XEPDB1 SAVE STATE
成功したら、docker psコマンドで起動しているコンテナを確認します。
]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 42d788b348ad oracle/database:18.4.0-xe "/bin/sh -c 'exec $O…" 4 minutes ago Up 4 minutes (health: starting) 0.0.0.0:1521->1521/tcp, 0.0.0.0:5500->5500/tcp, 8080/tcp ora18c
docker execコマンドでの接続
コンテナ名が、”ora18c"の場合、コマンドは以下のようになります。
docker exec -it ora18c /bin/bash
sqlplusで接続
ユーザーを指定せずにdocker execコマンドなどでdockerコンテナに接続すると、rootユーザーになります。 sqlplusを使用する場合、rootからoracleユーザーになる必要があります。 oracleユーザーになったらsqlplusで接続できます。
bash-4.2# su oracle [oracle@42d788b348ad /]$ sqlplus / as sysdba SQL*Plus: Release 18.0.0.0.0 - Production on Mon Oct 14 08:54:23 2019 Version 18.4.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. Connected to: Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production Version 18.4.0.0.0 SQL>