LoginSignup
50
53

More than 3 years have passed since last update.

Docker版Oracle Database 12cを使ってみる

Last updated at Posted at 2018-05-12

概要

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

Dockerfile

前提条件

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

※定義後マシン再起動

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

または、DockerのストレージドライバーをOverlay2に変更することでOSが認識しているディスク容量をすべて使用できるようになります

利用要件:

  • 適切なファイルシステムであること
  • RHEL または CentOS のカーネルバージョンが3.10.0-514以上
  • Linuxカーネルバージョンが4.0以上
  • Docker Engine - Community, and Docker EE 17.06.02-ee5 以上

手順

  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ディレクトリとマウントしてください

50
53
2

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
50
53