この記事ではDocker環境でOracle Database19cを構築する手順をまとめています。
動作環境
ProductName | macOS |
ProductVersion | 11.3 |
BuildVersion | 20E232 |
前提条件
- Docker Hubが使用できること
Docker Desktop
Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.
ディレクトリ構成
oracle_db
├── docker-compose.yaml
├── docker-images
├── oradata
└── startup ── create_user.sql
構築手順
1.Dockerのimageを作成する。
2.docker-compose作成する。
3. Dockerコンテナの作成と接続を行う。
Dockerのimageを作成する
公式repositoryからclone
git clone https://github.com/oracle/docker-images.git
フォルダ移動
cd docker-images/OracleDatabase/SingleInstance/dockerfiles/
使用できるOracle DatabaseのVersionを調べる。
ls
11.2.0.2 12.2.0.1 18.4.0 21.3.0
12.1.0.2 18.3.0 19.3.0 buildContainerImage.sh
cd 19.3.0
公式サイトからOracle Database19.c(Linux x86-64)をダウンロード
オラクル・データベース・ソフトウェアのダウンロード | オラクル | Oracle 日本
Windows、LinuxのOracle Solaris、IBM AIX、HP-UXおよび多くのための最新のデータベース・ソフトウェアである19c、またはすべての以前のバージョン18c、12cおよび11gをダウンロードしてください。
ダウンロードしたzipファイルを移動する。
mv downloads/LINUX.X64_193000_db_home.zip repos/oracle_db/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0
DockerDesktopのデフォルト設定だとOracle Database19cを起動するとメモリ不足が発生します。なのでメモリを追加します。
2GBから4GBに変更
imageを作成する
./buildContainerImage.sh -v 19.3.0 -e -i
docker-compose作成する
docker-compose.yaml
version: '3.8'
services:
database:
image: oracle/database:19.3.0-ee
container_name: oracle19c
environment:
TZ: Asia/Tokyo
#- ORACLE_PDB=
#- ORACLE_PWD=
ports:
- 1521:1521
- 5500:5500
volumes:
- ./oradata:/opt/oracle/oradata
- ./startup:/opt/oracle/scripts/startup
environment
TZ: Asis/Tokyo コンテナ内のタイムゾーンを指定
ORACLP_DB 管理者ユーザ
ORACL_PWD 管理者パスワード
volumes
データ永続化用フォルダ作成する。
mkdir oradata
chmod 777 oradata
初期設定用SQLフォルダ作成する。
mkdir startup
起動時に読み込むSQLを記述する。
create_user.sql
-- session
ALTER SESSION SET CONTAINER=ORCLPDB1;
-- create new user
CREATE USER TOKUTY IDENTIFIED BY tokuty;
-- grant priviledes
GRANT CONNECT, RESOURCE, DBA TO TOKUTY;
ORCLPDB1(PDB)に変更してからユーザー作成と権限付与を行う。
Dockerコンテナの作成と接続を行う
docker -compose up -d
Docker Desktopからログを確認すると約20分程で作成完了していました。
Dockerコンテナ内に入る。
docker exec -it oracle19c bash
作成したユーザーでログイン
sqlplus tokuty/tokuty@ORCLPDB1
接続時のログを確認する。
tokuty@tokutyMac-mini oracle_db % docker exec -it oracle19c bash
bash-4.2$ date
Sat Oct 1 12:10:06 JST 2022
bash-4.2$ sqlplus tokuty/tokuty@ORCLPDB1
SQL*Plus: Release 19.0.0.0.0 - Production on Sat Oct 1 12:10:34 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
無事に接続できました!
最後に
Dockerでおすすめの書籍を紹介します。
リンク
Dockerとは何か?動く仕組みのところからイラストや図を使ってわかりやすく説明してくれます。
ハンズオンも豊富で、WordPressやMySqlのコンテナを作成していきます。
基本的なDockerの知識、コマンドはこちらの書籍で学ぶことができるため、これからDockerを学びたい初心者におすすめです。