概要
システム動作検証でOracleが必要だったので、Docker版Oracle Database 12c(12.2.0.1)のインストール手順を残したいと思います
手順としては「Dockerfileからビルドする方法」と「Oracleが提供しているDockerイメージサービスから導入する方法」の2つあります
Dockerfile
前提条件
ディスクの空き容量が15GB以上であること!
ただし、Linux版Dockerが扱うディスクサイズ(basesize)の初期値が10GBになっているため、以下のようにdaemon.jsonで拡張する必要があります
※定義後マシン再起動
{
"storage-opts": ["dm.basesize=20G"]
}
または、DockerのストレージドライバーをOverlay2に変更することでOSが認識しているディスク容量をすべて使用できるようになります
利用要件:
- 適切なファイルシステムであること
- RHEL または CentOS のカーネルバージョンが3.10.0-514以上
- Linuxカーネルバージョンが4.0以上
- Docker Engine - Community, and Docker EE 17.06.02-ee5 以上
手順
-
oracle/docker-imagesをローカルにcloneします
-
OTN(Oracle Technology Network)からOracle Database 12c Release 2(12.2.0.1)のインストーラを入手
-
2で入手したインストーラをcloneしたリポジトリのOracleDatabase/SingleInstance/dockerfiles/12.2.0.1/に配置
-
起動用の環境変数ファイル(oracle.env)をOracleDatabase/SingleInstance/dockerfiles/12.2.0.1/に作成
※SID、PDB、パスワードは適宜変更してくださいoracle.envTZ=Asia/Tokyo ORACLE_SID=ORCL ORACLE_PDB=MYORCL ORACLE_PWD=oracle ORACLE_CHARACTERSET=AL32UTF8
-
イメージをビルド
OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/配下で以下のコマンドでイメージのビルド
※Dockerfile.se2をDockerfileにリネーム> docker build -t oracle/database:12.2.0.1-se2 .
-
コンテナの起動
Oracleのアップデートやらなんやらの処理がありますので、20分弱かかりました
> docker run -d --env-file ./oracle.env -p 1521:1521 -p 5500:5500 -it --name my_oracle --shm-size="4g" oracle/database:12.2.0.1-se2
Oracle Container Registry
初回起動時のデータインポート、リスナーが作られていない、データの永続化がないので、自分で設定しなければならないようです
イマイチ使い勝手悪い印象です
そもそもバージョンが古い
手順
-
Oracle恒例の使用許諾を乞う
「Database」-「standard」の「Continue」を選択し、使用許諾を得てください
-
docker loginからoracle container registryにログインする
ミラーサイトのcontainer-registry-ash.oracle.com
がおすすめです(こっちのほうが早いです)> docker login container-registry.oracle.com # 手順1で登録したユーザ名とパスワードを入力 > Username: xxxxx@xxxxx > Password: xxxxxx
-
イメージをpullする
イメージサイズがかなり大きいのと、USからpullするので時間がかかります> docker pull container-registry.oracle.com/database/standard
-
Oracle初期化用の環境変数ファイルを作成
※Repository Detailに書かれている内容ですcommon.envTZ=Asia/Tokyo DB_SID=OraDoc DB_PASSWD=MyPasswd123 DB_DOMAIN=my.domain.com DB_BUNDLE=basic
-
コンテナの起動
※--shm-sizeは最低4GBを確保してください(推奨が8GB)
※ディスク容量は25GBを確保してください> docker run -d --env-file ./common.env -p 1521:1521 -p 5500:5500 -it --name myoracle --shm-size="8g" container-registry.oracle.com/database/standard
しばらくすると以下のように表示されれば、インストール完了です
Done ! The database is ready for use . Wed Apr 11 23:45:06 JST 2018 User check : root. Setup Oracle Database
※データを永続化したい場合は、コンテナ側の
/u02
ディレクトリとマウントしてください