Oracle Database Express EditionをDocker環境で試す

こんにちはサイオステクノロジー角川です。

Oracleデータベース用のDockerコンテナビルドツールが公開されており、このビルドツールを利用ことで手軽にOracleデータベースのコンテナを作成して試用することが出来ます。

今回はそのビルドツールを用いてOracle Database Express Edition(Oracle Database XE)という無償で利用出来るOracleデータベースエディションのコンテナを作成し、ローカル環境で試用環境を作成する手順についてご紹介します。

 

環境情報

  • データベース
    • Oracle Database 21c Express Edition
  • データベースクライアント
    • oracle-instantclient-basic-21.6.0.0.0
    • oracle-instantclient-sqlplus-21.6.0.0.0

※本記事中の各ソフトウェアのバージョンは記事執筆時のものです。

 

手順

Oracle Database Express EditionのDockerイメージの作成

以下のGitコマンドでビルドツールをダウンロード(clone)してください。

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

 

ダウンロード後、以下のディレクトリへ移動してください。

$ cd docker-images/OracleDatabase/SingleInstance/dockerfiles

 

移動後、lsコマンドなどで確認すると以下のようなディレクトリがあることが分かります。

11.2.0.2
12.1.0.2
12.2.0.1
18.3.0
18.4.0
19.3.0
21.3.0

 

コンテナビルドの実行

以下のコマンドでビルドを実行してコンテナイメージを作成します。

今回はバージョン21cを試すため、-vオプションで21.3.0を指定します。また、-xオプションを指定することでExpress Editionのビルドをおこなうよう指定しています。

$ ./buildContainerImage.sh -v 21.3.0 -x

 

イメージの確認

ビルド後のイメージを確認します。

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
oracle/database 21.3.0-xe 001952aeb8ab 1 minutes ago 6.53GB

oracle/databaseというイメージ名で21.3.0-xeというタグが付いたイメージが作成されていることが確認出来ます。

 

動作確認

docker-composeでデータベースコンテナとデータベース接続確認用コンテナの2つを起動して動作の確認をおこないます。

 

データベース接続確認用コンテナ

作業用ディレクトリに以下のDockerfileを作成し、データベース接続確認用コンテナとして起動出来るようにしておきます。

FROM oraclelinux:7

WORKDIR /usr/local/src/
RUN yum -y install libaio && \
curl -O https://download.oracle.com/otn_software/linux/instantclient/216000/oracle-instantclient-basic-21.6.0.0.0-1.x86_64.rpm && \
curl -O https://download.oracle.com/otn_software/linux/instantclient/216000/oracle-instantclient-sqlplus-21.6.0.0.0-1.x86_64.rpm && \
rpm -ivh oracle-instantclient-*

CMD ["sleep", "infinity"]

こちらからデータベースのクライアントソフトウェアであるoracle-instantclient-basicoracle-instantclient-sqlplusをダウンロードしてインストールするようにしてあります。

※お試しの際はバージョンやダウンロード先のURLは最新のものに置き換えてご利用ください。

 

docker-compose.yamlの作成

同じく作業用ディレクトリに以下のdocker-compose.yamlファイルを作成して、

データベースコンテナとデータベース接続確認用コンテナの2つが起動出来るようにします。

version: '3.8'

services:
  client:
    build: .
    depends_on:
      - database

  database:
    image: oracle/database:21.3.0-xe
    environment:
      - ORACLE_PWD=oracle
    ports:
      - "1521:1521"
      - "5500:5500"

ORACLE_PWDという環境変数でデータベース接続用のパスワードを設定しています。

こちらは適宜変更をおこなってください。

 

コンテナの起動

以下コマンドで起動します。

$ docker-compose up -d

データベースコンテナの起動完了まで時間がかかりますのでご注意ください。

 

データベースへ接続

以下コマンドでclientという名前のデータベース接続確認用コンテナに入ります。

$ docker-compose exec client bash

 

以下コマンドでデータベースへ接続をおこないます。

# sqlplus system/oracle@database:1521

上記sqlplusのコマンドの意味は以下のようになります。

# sqlplus `ユーザ名`/`パスワード`@`ホスト名:`ポート番号`

 

以下のような表示になれば正常にデータベースに接続ができています。

# sqlplus system/oracle@database:1521

SQL*Plus: Release 21.0.0.0.0 - Production on Mon Jun 27 01:24:29 2022
Version 21.6.0.0.0

Copyright (c) 1982, 2022, Oracle. All rights reserved.

Last Successful login time: Mon Jun 27 2022 01:24:10 +00:00

Connected to:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

SQL>

SQL>プロンプトが表示され、データベースに接続出来ていることが確認できます。

最後に

いかがだったでしょうか。コンテナのビルドをおこなうなど準備は必要ですが、コンテナを利用することでOracle Database Express Editionを試用する環境が作成出来たと思います。

参考になれば幸いです。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です