LoginSignup
9
9

More than 3 years have passed since last update.

DockerでOracle Database Expressを使う

Last updated at Posted at 2020-03-01

はじめに

dockerでOracle Database 11g Expressを使う手順。

OracleがインストーラとDockerfileを別々に配布しているため、ローカルでdocker buildする必要が有る。

環境

dockerfileをclone

dockerfileを同梱したビルドツールをGitHubからクローンする。

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

Oracle Database XE本体をダウンロード

以下のサイトからXEをダウンロードする。
現時点(2020/02/28)では Oracle Database 11g Release 2Oracle Database 18c の2つバージョンが公開されている。11gと18cで仕組みやコンポーネントがかなり違うので要注意。

ダウンロードしたファイルをビルドツール内のディレクトリに配置する。

11gインストーラ格納ディレクトリ
docker-images/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2

ビルド

dockerのbuildコマンドでイメージを作る。

ビルド用のスクリプトbuildDockerImage.shが公開されているのでこれを使う。引数の詳細は README参照のこと。

cd docker-images/OracleDatabase/SingleInstance/dockerfiles
./buildDockerImage.sh -v 11.2.0.2 -x

データベースファイル格納ディレクトリの準備

dockerがマウントするデータベースファイルを格納するディレクトリを用意する。

mkdir ./oradata
chmod 777 ./oradata

データベースファイルを作るのに10分以上かかるので、マウントをおすすめする。

docker-composeで起動

docker-composeファイルを作成する。

docker-compose.yml
version: "2"
services:
  db:
    image: oracle/database:11.2.0.2-xe
    container_name: oracle
    shm_size: 1g
    ports:
      - 1521:1521
      - 5500:5500
      - 8080:8080
    volumes:
      - ./oradata:/opt/oracle/oradata
    environment:
      - ORACLE_PWD=manager

docker-compose.ymlのポイントは以下。

  • shm_sizeは、Oracleが大量にメモリを消費するため、共有メモリ1GBを設定している。
  • ポート番号は、1521 (Oracle Listener), 5500 (OEM Express),8080 (APEX)の3つ。
  • ORACLE_PWDはOracleのパスワード。

次に、コンテナを起動する。

docker-compose up -d

コンテナの起動状況はログで確認する。

docker logs -f db

初期設定

sqlplusを起動する。

docker-compose exec db sqlplus system/manager@//localhost:1521/XE

EMなどで外部から接続できる設定をする。

EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);

参考サイト

9
9
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
9
9