docker storeに公開されている公式Oracle Enterprise Editionを動かしてみる

目次

Oracleがdocker storeにOracle Enterprise Editionを公開中

docker storeにOracleが公式にWebLogicやOracle Enterprise Edition等を公開しています。
下記構成で、Oracleを試してみたいと思います。

  • CentOS 7.3
  • docker 1.12.6
  • メモリ8GB,ルートHDD 40GB

docker storeでoracleと検索してみます。

  1. docker storeへアクセス
  2. 検索キーワードにoracleと入力し検索します。
  3. Oracleが公開しているdockerコンテナが表示されます。
    JavaとかWebLogicとかoraclelinux等がありますね

oracle Enterprise Editonコンテナを利用する

  1. Oracle Enterprise Editonをクリックします。
  2. 【GetContent】をクリックします。
  3. DockerIDでログインします。
    DockerIDがない場合には、Create Accountから新規作成してください。
  4. 【Get Content】をクリックします。
  5. 必要情報を入力と、規約に同意にチェックをつけ【Get Content】をクリックします。
  6. 【Setup】をクリックします
  7. セットアップ手順等が表示されます。

dockerの準備

下記コマンドでdockerをインストールします。

#yum -y install docker

docker storeにログインします。

# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: 
Password:
Login Succeeded

docker標準だとコンテナのルート領域が10GBで作成されますが、Oracleコンテナを実行させるのには10GBでは足りないため、30GBの設定に変更します。

#vi /etc/sysconfig/docker

OPTIONS行の末尾に下記を追記します。

--storage-opt dm.basesize=30G

追記後は下記のようになります。
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --storage-opt dm.basesize=30G'

dockerを起動します。

#systemctl start docker

標準状態でdockerを起動してoracleコンテナを実行した場合、下記のようなエラーで起動が途中で停止してしまいます。

tar: u02/app/oracle/oradata/ORCL/pdbseed/sysaux01.dbf: Cannot write: No space left on device
tar: u02/app/oracle/oradata/ORCL/pdbseed/system01.dbf: Cannot write: No space left on device
tar: u02/app/oracle/oradata/ORCL/system01.dbf: Cannot write: No space left on device
tar: u02/app/oracle/oradata/ORCL/undotbs01.dbf: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/dbs/spfileORCL.ora: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/dbs/hc_ORCL.dat: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/dbs/initORCL.ora: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/dbs/init.ora: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/dbs/orapwORCL: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/dbs/lkORCL: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/apex/apxe121.sql: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/apex/apxremov2.sql: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/apex/coreins6.sql: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/apex/apxrtins_nocdb.sql: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/apex/apex_epg_config_nocdb.sql: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/apex/apxe101.sql: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/apex/apexins_cdb.sql: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/apex/appins.sql: Cannot write: No space left on device
tar: u01/app/oracle/product/12.1.0/dbhome_1/apex/apxremov_cdb.sql: Cannot write: No space left on device

Oracle Enterprise Editionコンテナの取得

dockerコンテナを取得します。
容量が大きいので時間がかかります。

# docker pull store/oracle/database-enterprise:12.1.0.2
Trying to pull repository docker.io/store/oracle/database-enterprise ...
12.1.0.2: Pulling from docker.io/store/oracle/database-enterprise

abf7e4428604: Pull complete
00dfe33d8ca6: Pull complete
bd2b2e675457: Pull complete
599b3db5a3e4: Pull complete
0e47b3ce0d30: Downloading [=============>                                     ] 1.361 GB/4.873 GB

環境設定ファイルの準備

DB_SIDやパスワードを設定するためのファイルを作成します。
今回は、/home/oracle/db_env.dat として作成します。

# vi /home/oracle/db_env.dat

下記内容で作成し保存します。
DB_SIDやDB_PASSWDは適宜変更してください。

####################################################################
## Copyright(c) Oracle Corporation 1998,2016. All rights reserved.##
##                                                                ##
##                   Docker OL7 db12c dat file                    ##
##                                                                ##
####################################################################

##------------------------------------------------------------------
## Specify the basic DB parameters
##------------------------------------------------------------------

## db sid (name)
## default : ORCL
## cannot be longer than 8 characters

DB_SID=ORCL

## db passwd
## default : Oracle

DB_PASSWD=MyPasswd123

## db domain
## default : localdomain

DB_DOMAIN=localdomain

## db bundle
## default : basic
## valid : basic / high / extreme 
## (high and extreme are only available for enterprise edition)

DB_BUNDLE=basic

## end

Oracleコンテナを起動する

下記コマンドで、Oracleコンテナを起動します。 shm-sizeは8GB以上を指定してください。

#docker run -d --env-file /home/oracle/db_env.dat -p 1521:1521 -p 5500:5500 -it --name dockerDB --shm-size="8g" store/oracle/database-enterprise:12.1.0.2

起動するまで時間がかかるので、ログファイルをtailして確認していきます。

# docker logs -f dockerDB
User check : root.
Setup Oracle Database
Oracle Database 12.1.0.2 Setup
Thu Apr 27 13:27:17 UTC 2017

Check parameters ......
log file is : /home/oracle/setup/log/paramChk.log
paramChk.sh is done at 0 sec

untar DB bits ......
log file is : /home/oracle/setup/log/untarDB.log

それぞれの処理ごとにログファイルが作成されていきます。
コンテナに入って確認したいときには下記コマンドを実行します。

# docker exec -it dockerDB /bin/bash
[root@0fbb614fe86b /]# コンテナのシェルになります。

コンテナに入った状態で、exitコマンドを実行してしまうとコンテナが停止してしまうため、抜けるときには、Ctrl + P,Q と入力します。

セットアップログファイルの場所

下記ディレクトリに作成されていきます。

#cd /home/oracle/setup/log/

[root@0fbb614fe86b log]# ls -ltr
total 4056
-rw-r--r-- 1 root   root          70 Apr 27 13:27 dockerInit.log
-rw-r--r-- 1 root   root         236 Apr 27 13:27 paramChk.log
-rw-r--r-- 1 root   root     4130026 Apr 27 13:32 untarDB.log
-rw-r--r-- 1 root   root         333 Apr 27 13:32 setupDB.log
-rw-r--r-- 1 root   root         107 Apr 27 13:32 configDB.log
-rw-r--r-- 1 oracle oinstall    2663 Apr 27 13:34 configDBora.log

下記のログが表示されれば完了です!

configDB.sh is done at 619 sec
Done ! The database is ready for use .

SQLPLUSを利用して、ログインを試す

セットアップ完了後、oracleユーザへスイッチしてDBへの接続を確認します。

[root@0fbb614fe86b log]# su - oracle
Last login: Thu Apr 27 13:32:26 UTC 2017
[oracle@0fbb614fe86b ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Thu Apr 27 13:53:54 2017

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Advanced Analytics
and Real Application Testing options

SQL>

Enterprise Managerから接続を確認する

Enterprise Managerも利用することができます!
dockerが動作しているホストIPに対してポート5500番でhttpsを利用してアクセスします。
(firewallやSELinuxは適宜アクセスを許可しておいてください。)

https://dockerホスト:5500/em/

ユーザ名にsys、パスワードにdb_env.datファイルで指定したパスワードSYSDBA権限にチェックを入れ【ログイン】をクリックします。

下記のようなエラーが表示された場合には、コンテナに入り一旦ORACLEを停止→起動します。

# su - oracle
Last login: Thu Apr 27 13:53:49 UTC 2017
[oracle@0fbb614fe86b ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Thu Apr 27 14:09:24 2017

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Advanced Analytics
and Real Application Testing options

SQL> shutdown
Database closed.
Database dismounted.

SQL> startup
ORACLE instance started.

Total System Global Area 3019898880 bytes
Fixed Size                  2928968 bytes
Variable Size             738201272 bytes
Database Buffers         2264924160 bytes
Redo Buffers               13844480 bytes
Database mounted.
Database opened.
SQL>

Enterprise Managerをリロードします。
EMで情報が表示されます。

まとめ

高価なOracle Enterprise Editionをテスト目的用途ですが無償で利用できる環境を手早く整えることができます。
Enterprise Managerもついているという豪華構成ですね。
Oracleはインストールも手順が多いのですが、dockerを利用することでとても簡単に構築することができます。

ただこの状態は、コンテナを停止するとDBはすべて削除されますので、必要に応じてホスト側へ保存する設定を行ってください。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次