はじめに
とある事情にてOracle11gの環境が必要になりました。
手持ちのMacBook1台で開発環境をFIXさせたいため、Dockerにて構築することにしました。
前準備
- Dockerは導入済みとします。
Docker for Macをインストールしてみた が非常にわかりやすいと思います。 - Oracle.comのアカウントは作成済みとします。
まだの方は
Oracleプロファイルの作成 から作成します。
構築作業
##GitHubからOracleのDockerイメージをダウンロードする
$ git clone https://github.com/oracle/docker-images.git
##Oracle本体をダウンロードする
Oracleのダウンロードサイトから、Oracle本体をダウンロードする必要があります。
今回は11gの「Linux x86-64」からダウンロードしてきます。
##Oracle本体をDockerイメージに配置する
Dockerで動かすOracleはシングル構成とRac構成が選択できます。
今回構築する環境は__シングル構成__とします。
ダウンロードしたOracle本体をzipファイルのまま、Dockerイメージにコピーします。
docker-images/OracleDatabase/SingleInstance/dockerfiles/に各バージョンごとにディレクトリがありますので、Oracle本体と対応したディレクトリに配置する必要があります。
11g以降のバージョンがDockerで利用できることがわかりますね。
$ ll docker-images/OracleDatabase/SingleInstance/dockerfiles/
total 16
drwxr-xr-x 8 oracle staff 256 2 10 19:22 ./
drwxr-xr-x 10 oracle staff 320 2 10 15:53 ../
drwxr-xr-x 9 oracle staff 288 2 10 16:09 11.2.0.2/
drwxr-xr-x 18 oracle staff 576 2 10 15:53 12.1.0.2/
drwxr-xr-x 16 oracle staff 512 2 10 15:53 12.2.0.1/
drwxr-xr-x 16 oracle staff 512 2 10 15:53 18.3.0/
drwxr-xr-x 8 oracle staff 256 2 10 15:53 18.4.0/
-rwxr-xr-x 1 oracle staff 5088 2 10 15:53 buildDockerImage.sh*
##イメージをビルドする
buildDockerImage.shを叩いてイメージをビルドします。
コンソールに「Successfully tagged oracle/database:11.2.0.2-xe」と出ればOKです。
$ docker-images/OracleDatabase/SingleInstance/dockerfiles/buildDockerImage.sh -v 11.2.0.2 -x -i
(中略)
Successfully built 763f697f8cfb
Successfully tagged oracle/database:11.2.0.2-xe
Oracle Database Docker Image for 'xe' version 11.2.0.2 is ready to be extended:
--> oracle/database:11.2.0.2-xe
Build completed in 120 seconds.
##コンテナを起動する
コンテナの起動直後にOracleのSYSユーザとSYSTEMユーザのパスワードがコンソールに表示されます。
コンソールログがガンガン流れるため、見失わないようにしましょう。
$ sudo docker run -p 1521:1521 --shm-size=1g --name oracle11 oracle/database:11.2.0.2-xe
ORACLE PASSWORD FOR SYS AND SYSTEM: XXXXXXXXXXXXXX
以下のメッセージがコンソールに表示されたら、Oracleが利用できる状態となります。
#########################
DATABASE IS READY TO USE!
#########################
この後も処理が続き、私の環境では結構エラーが出ていましたが、無視しても問題ありませんでした。
##起動確認
SQLPlusを使用して、作成したOracleDatabaseに接続してみます。
$ sqlplus system@localhost:1521
SQL*Plus: Release 12.2.0.1.0 Production on Mon Feb 11 13:13:27 2019
Copyright (c) 1982, 2017, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL>
できました!!!