やりたいこと
DockerでOracleデータベースを使用する方法です。
前提条件
Express Editionを使います。
概要
公式のリポジトリを使います。
手順
ビルド
- 事前にダウンロードする(Oracleアカウント必須)。
- Express Edition: http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html
- ZIPファイルの解凍は不要です。
- 以下のコマンドを実行
git clone https://github.com/oracle/docker-images.git oracle
cd oracle/OracleDatabase/SingleInstance/dockerfiles
# 事前にダウンロードしたExpress Editionのzipファイルを移動
mv /path/to/oracle-xe-11.2.0-1.0.x86_64.rpm.zip 11.2.0.2
# ビルド
./buildDockerImage.sh -x -v 11.2.0.2
これで以下の内容で作成されます。 ビルドにかかった時間は94秒、容量は1.13GBでした。
- リポジトリ: oracle/database
- タグ: 11.2.0.2-xe
ビルドにはOrace Linux(oraclelinux:7-slim)が使われるようです。
実行
起動方法は以下を参照。 環境にもよりますが、1分15秒ほどかかりました。
Running Oracle Database Express Edition in a Docker container
以下のようにして接続できます。
- SID: XE
- User: system
- Password: 起動時に設定したもの
コンテナ内部からのsqlplusによる接続は以下のような感じ。
sqlplus sys/パスワード@localhost/XE as sysdba
補足
XEではUTF-8固定なので、他のエンコーディングを使用する場合は、 以下の方法を使う必要があります(未確認)。