DockerでOracle Databaseを立てる

以前、Oracle 12cのDockerコンテナを立ち上げたことがあったけど、やり方をメモっていなかったので、再度 Oracle 19cでコンテナを立ち上げることにした。

ちょっとしたOracle DBの挙動確認に便利。

参考したサイトと環境

以下のサイトを参考にした。

環境は以下のとおり。

$ docker -v
Docker version 19.03.8, build afacb8b

$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.14.6
BuildVersion:	18G4032

インストールするOracleのバージョンは以下のもの。

  • Oracle Database 19c (19.3.0) Enterprise Edition and Standard Edition 2

Dockerイメージの作成

ビルド準備

Gitリポジトリをクローン

git clone git@github.com:oracle/docker-images.git

Oracle Technology Networkから「19.3 - Enterprise Edition Linux x86-64」のzipをダウンロード。

ビルド

cd oracle_docker-images/OracleDatabase/SingleInstance
mv ~/Downloads/LINUX.X64_193000_db_home.zip dockerfiles/19.3.0
cd dockerfiles
./buildDockerImage.sh -v 19.3.0 -e -i

途中で容量が足りなくなって止まってしまったので、Dockerの設定画面からリソースを割り当て。再ビルドしてイメージができた。

$ docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
oracle/database               19.3.0-ee           a45c3943066a        4 minutes ago       6.65GB

Oracle起動

Sample/Docker/Oracle at master · eiKatou/Sampleからdocker-compose.yamlを取得。そのディレクトリで作業する。

# Oracleのデータ出力用のディレクトリ作成
mkdir ./oradata
chmod 777 ./oradata

# Oracle起動
docker-compose up -d

# 起動できたかログで確認
# DATABASE IS READY TO USE! が確認できたら起動完了(15分ぐらいかかる)
docker logs -f oracle-19-ee

Oracleに接続

docker-images/README.md at master · oracle/docker-imagesにデフォルト値が書いてある。

  • SID : ORCLCDB
  • PDB : ORCLPDB1
  • パスワード : password01(docker-compose.yamlに記載)

oracle_connect

無事に接続できた!

SQLの発行

select * from dba_users;

Oracleが動いているDockerコンテナに接続

アラートログの確認もできる。

docker exec -it oracle-19-ee /bin/bash

# アラートログの確認
more /opt/oracle/diag/rdbms/orclcdb/ORCLCDB/trace/alert_ORCLCDB.log

Dockerコンテナの終了

docker-compose down