BETA

dockerでOracle DB 11gを動かす

投稿日:2018-10-14
最終更新:2018-10-24
※この記事は外部サイト(https://tmegos.hatenablog.jp/entry/docker-...)からのクロス投稿です

12cを構築する方法はいくつか見つけたのですが、11gを構築する方法はあまり無かったのでメモ。 基本的にはOracleの公式とQiitaの記事を参考にしています。

環境

  • ホストOS: CoreOS(1576.5.0)
  • docker: 17.09.0-ce
  • docker-compose: 1.16.1

手順

  1. ここからoracle-xe-11.2.0-1.0.x86_64.rpm.zipをダウンロード
  2. dockerfiles/11.2.0.2/oracle-xe-11.2.0-1.0.x86_64.rpm.zipを置く
  3. 以下のコマンドでイメージを作成

     $ ./buildDockerImage.sh -v 11.2.0.2 -x -i
    
     ...
    
     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 160 seconds.

ビルドが成功すると、以下のようにOracle DBのイメージが作成されている

    $ docker images
    oracle/database                                      11.2.0.2-xe         xxxxxxxxxxxx        24 hours ago        1.13GB
  1. データ永続化用のディレクトリを作成

     $ mkdir data
     $ sudo chown 1000:1000 data
  2. docker-compose.ymlを準備
    https://gist.github.com/megos/2df071c04817456bee04597f52e60063

  3. 以下のコマンドで実行
    $ docker-compose up -d

注意点

永続化用のディレクトリのパーミッション

公式のドキュメントに

Has to be writable by the Unix "oracle" (uid: 54321) user inside the container!

とあったので、はじめはuidを54321としていましたが書き込みができませんでした。
CoreOSの他の永続化用ディレクトリと同じようにuidを1000にする必要があります。

DB起動時のオプション

ORACLE_SIDORACLE_PDBORACLE_CHARACTERSETは11gでは設定できません
オプション自体は受け取るようですが、起動時に失敗します

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@megosの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!