60
66

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

OS X 10.11で,Oracle Database 12cのDocker Imageを使ってみた

Last updated at Posted at 2016-10-09

この記事はなに?

Dockerでアプリケーションのローカル開発環境を構築するにあたって,「Oracle DBのDocker Containerって使えないのかなぁ」と思ったら,公式が用意してくれていたので試してみました.
他にも,「Oracle試してみたいけど環境構築面倒…」という人にも使えるかと思います(Dockerならイメージの配布も簡単なので).

注意点

  • Dockerの導入方法については記載しません.
  • このインストール方法はOracle社ページのブログをもとにしていますが,Oracle社としてはこの方法でのインストールのサポートはしていないみたいです. 追記(2017/05/02): 公式にリリースされたとのPress Releaseがありました.https://www.oracle.com/corporate/pressrelease/docker-oracle-041917.html

参考記事

基本的に下記記事をなぞったただけです.

環境

Mac OS X 10.11.6
Docker 1.12.1 (Docker for Mac)

手順

コンテナを起動するまでの手順として,大きく分けて,

  • Dockerfile(とビルド用スクリプト)をGithubから入手
  • Oracle DBのバイナリを入手
  • ビルドしてイメージを作成
  • イメージからコンテナを起動

の4段階のプロセスがある.

加えて,DBにCLIから接続するために,SQL*Plusを導入し,実際にDBにログインするところまでを扱う.

Oracle公式のDockerfileを導入

cd /path/to/src/directory

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

cd docker-images/OracleDatabase

↑に,具体的にどうやってビルドすればいいか書いてある.

11.2.0.2と,12.1.0.2の2バージョンに対応しているらしい.

Oracle DBのバイナリを入手

開発者向けにOracle Databaseを入手するためには,事前にOTN開発者ライセンスの入手(無償)が必要.
規約をよく読んでから入手.

その後,製品のダウンロードページへ行く.
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

今回入手したいのは,Oracle Database 12c Release 1 (12.1.0.2.0) - Enterprise Edition.
参考記事とは異なり,使用している端末のOSがOS Xなので少し悩んだが,コンテナ自体はLinuxなので(Dockerだから当たり前か),"Linux x86-64"のリンクから,"linuxamd64_12102_database_1of2.zip","linuxamd64_12102_database_2of2.zip"の両方を入手.

ビルドしてイメージを入手

cd docker-images/OracleDatabase/dockerfiles

mv /path/to/binary/linuxamd64_12102_database_{1,2}of2.zip 12.1.0.2/

./buildDockerImage.sh -v 12.1.0.2 -e -i

1点,参考記事とは異なり,OS Xではデフォルトでmd5sumコマンドが用意されておらず,iオプションをつけてMD5チェックサムの確認をしないようにする必要があることに注意.

しばらく待つとイメージがインストールされる.

docker images

で.

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
oracle/database     12.1.0.2-ee         e63a79a35266        2 hours ago         11.48 GB

のように表示されれば,無事イメージがビルドされている.

イメージからコンテナを起動

sudo docker run -p 1521:1521 --name gvenzl oracle/database:12.1.0.2-ee

実行後,しばらく待つと,

#########################
DATABASE IS READY TO USE!
#########################

のような文言が表示される.
これで,コンテナ(ここでは"gvenzl"という名前にしている)上のDBが起動し,Dockerホスト上から1521番ポートで見える状態になっているらしい(この後もスクリプトが終了しないのだが,問題ないのかは不明…).

また,

ORACLE AUTO GENERATED PASSWORD FOR SYS, SYSTEM AND PDBAMIN

という文言の後に,systemユーザ用のパスワードが表示される.

これを変更したい場合は,コンテナ起動後,

cd docker-images/OracleDatabase/dockerfiles/12.1.0.2

PASS=<your password> # 参考記事中では,"LetsDocker"と設定している
sudo docker exec gvenzl ./setPassword.sh ${PASS}

とする.

SQL*Plusを導入

http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html
上記ページからOS X向けのクライアントとSQL*Plusを入手.
instantclient-basic-macos.x64-12.1.0.2.0.zip
instantclient-sqlplus-macos.x64-12.1.0.2.0.zip

両方のZIPファイルを展開し,ディレクトリに入っているすべてのファイルを,同一のディレクトリ中に入れる.

このディレクトリを

ls -ld ~/src/instantclient_12_1

とした場合,

export ORACLE_HOME=~/src
export SQLPATH=$ORACLE_HOME/instantclient_12_1/

export PATH="$SQLPATH:$PATH"

のように環境変数を設定する(この設定は.bash_profileなどに記述するとよい).

Oracle DBにログイン

sqlplus system/<your password>@//localhost:1521/ORCLPDB1

無事ログインできれば,コンソールが表示される.

select table_name, tablespace_name, status from user_tables;

このSQLで現在のテーブル一覧とステータスが表示されればOK.

60
66
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
60
66

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?