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>