Oracle DatabaseのDocker Imageは公開されていないらしく、自前でビルドする必要がある。
そのための手順をメモ。(2022.07時点)
- 環境
- MacBook Pro (2018)
- MacOX monterey 12.4
- Docker Desktop 4.10.1
- MacBook Pro (2018)
2023.03.20
sqlplus起動のコマンド間違えを修正。
Oracle Docker-Imageリポジトリの入手(git clone)
Github oracle/docker-images
$ cd ~/
$ git clone https://github.com/oracle/docker-images.git
Oracle Database 21c Express Editionの入手
Oracle Database Express Edition (XE) DownloadからOracle Database 21c Express Edition for Linux x64 ( OL8 )
をダウンロード。(OL7でも可)
Docker Imageビルド
cloneしてきたリポジトリの以下のパスまで移動。
cd ~/docker-images/OracleDatabase/SingleInstance/dockerfiles
ダウンロードしたデータベースのバージョンと一致するディレクトリにコピーする。
$ mv ~/oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm ./21.3.0/
シェルを実行。
$ ./buildContainerImage.sh -v 21.3.0 -x -i
しばらく待つと完成。
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
oracle/database 21.3.0-xe 9b207125183b 3 days ago 6.53GB
おまけ:イメージの保存と読み込み
docker saveコマンドでローカル保存。
$ docker save oracle/database:21.3.0-xe | gzip > oracle-database-21.3.0-xe.tar.gz
docker loadコマンドで読み込み。
$ docker load < oracle-database-21.3.0-xe.tar.gz
(コンテナで)Oracle Database起動
GitのREADMEに書かれている「Running Oracle Database 21c/18c Express Edition in a container」を参考。
version: '3.8'
services:
oraclexe:
image: oracle/database:21.3.0-xe
ports:
- 1521:1521
environment:
- ORACLE_PWD=ora
- ORACLE_CHARACTERSET=AL32UTF8
volumes:
- oradata:/opt/oracle/oradata
# - ./oradata:/opt/oracle/oradata # ホストにマウントする場合
# - ./startup:/opt/oracle/scripts/startup # 起動時実行スクリプトを配置
volumes:
oradata:
インスタンスの起動に時間がかかる・・・。
sqlplus
$ docker-compose exec oraclexe sqlplus sys/ora@//localhost:1521/XE as sysdba
SQL*Plus: Release 21.0.0.0.0 - Production on Sun Jul 10 16:07:30 2022
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Connected to:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
SQL>