概要

 システム動作検証でOracleが必要だったので、Docker版Oracle Database 12c(12.2.0.1)のインストール手順を残したいと思います
手順としては「Dockerfileからビルドする方法」と「Oracleが提供しているDockerイメージサービスから導入する方法」の2つあります

Dockerfile

前提条件

ディスクの空き容量が15GB以上であること!
ただし、Linux版Dockerが扱うディスクサイズ(basesize)の初期値が10GBになっているため、以下のようにdeamon.jsonで拡張する必要があります

※定義後マシン再起動

/etc/docker/deamon.json
{
  "storage-opts": ["dm.basesize=20G"]
}

手順

  1. oracle/docker-imagesをローカルにcloneします
  2. OTN(Oracle Technology Network)からOracle Database 12c Release 2(12.2.0.1)のインストーラを入手
  3. 2で入手したインストーラをcloneしたリポジトリのOracleDatabase/SingleInstance/dockerfiles/12.2.0.1/に配置
  4. 起動用の環境変数ファイル(oracle.env)をOracleDatabase/SingleInstance/dockerfiles/12.2.0.1/に作成
    ※SID、PDB、パスワードは適宜変更してください

    oracle.env
    TZ=Asia/Tokyo
    ORACLE_SID=ORCL
    ORACLE_PDB=MYORCL
    ORACLE_PWD=oracle
    ORACLE_CHARACTERSET=AL32UTF8
    
  5. イメージをビルド

    OracleDatabase/SingleInstance/dockerfiles/12.2.0.1/配下で以下のコマンドでイメージのビルド
      ※Dockerfile.se2をDockerfileにリネーム

    > docker build -t oracle/database:12.2.0.1-se2 .
    
  6. コンテナの起動

    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

初回起動時のデータインポート、リスナーが作られていない、データの永続化がないので、自分で設定しなければならないようです
イマイチ使い勝手悪い印象です
そもそもバージョンが古い

手順

  1. Oracle Container Registryに登録する
  2. Oracle恒例の使用許諾を乞う
    「Database」-「standard」の「Continue」を選択し、使用許諾を得てください
    ora-container-registry1.png
    ora-container-registry2.png

  3. docker loginからoracle container registryにログインする
    ミラーサイトcontainer-registry-ash.oracle.comがおすすめです(こっちのほうが早いです)

    > docker login container-registry.oracle.com
    
    # 手順1で登録したユーザ名とパスワードを入力
    > Username: xxxxx@xxxxx
    > Password: xxxxxx
    
  4. イメージをpullする
    イメージサイズがかなり大きいのと、USからpullするので時間がかかります

    > docker pull container-registry.oracle.com/database/standard
    
  5. Oracle初期化用の環境変数ファイルを作成
    Repository Detailに書かれている内容です

    common.env
    TZ=Asia/Tokyo
    DB_SID=OraDoc
    DB_PASSWD=MyPasswd123
    DB_DOMAIN=my.domain.com
    DB_BUNDLE=basic
    
  6. コンテナの起動
    ※--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ディレクトリとマウントしてください

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.