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と検索してみます。
- docker storeへアクセス
- 検索キーワードにoracleと入力し検索します。
- Oracleが公開しているdockerコンテナが表示されます。
JavaとかWebLogicとかoraclelinux等がありますね
oracle Enterprise Editonコンテナを利用する
- Oracle Enterprise Editonをクリックします。
- 【GetContent】をクリックします。
- DockerIDでログインします。
DockerIDがない場合には、Create Accountから新規作成してください。
- 【Get Content】をクリックします。
- 必要情報を入力と、規約に同意にチェックをつけ【Get Content】をクリックします。
- 【Setup】をクリックします
- セットアップ手順等が表示されます。
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は適宜アクセスを許可しておいてください。)
ユーザ名に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はすべて削除されますので、必要に応じてホスト側へ保存する設定を行ってください。