こんにちわ
グローバスセンス株式会社のskanehiraです。
最近コツコツとWebアプリ作っていたので、記事を各のは久々です。
ちなみに作ったWebアプリはこちらです。
いずれ、このアプリについて記事を書く予定です。
今回のテーマ
いろいろあって、Oracle Master Bronzeを取得することにしたので、
勉強のため、Oracle Database 12cを用意しました。
その時の備忘録になります。
同じことをやろうとしている方の助けになればと思います。
用意するもの
- Docker
- Docker Compose
- Oracle docker-images(リポジトリ)
- Oracle Database 12c(本体)
Oracle公式でイメージは用意していないため、pullできないので、
イメージをビルドする必要があります。
といっても、公式でちゃんとビルド用のリポジトリが用意されているので大丈夫です。
ビルド環境
環境 | バージョン |
---|---|
OS | macOS High Sierra |
Docker | 18.03.1-ce |
Docker Compose | version 1.21.1, build 5a3f1a3 |
参考サイト
今回構築する際に参考情報です。
ありがとうございましたm(_ _)m
- https://qiita.com/lethe2211/items/0bb493fa93a0088cfac9
- http://tmegos.hatenablog.jp/entry/docker-oracle-11g
- https://github.com/oracle/docker-images/blob/master/OracleDatabase/SingleInstance/README.md
- https://docs.oracle.com/cd/E39368_01/E75728/html/ch04s18.html
手順
1. 公式リポジトリをgit clone
git clone https://github.com/oracle/docker-images.git
いろいろありますが、使用するのはOracleDatabase
になります。
2. 公式からOracle Database本体をダウンロードする
Oracle Database 12c Release 2 Linux x86-64をダウンロードします。
少し時間がかかりますので,
その間はyoutubeでダブステップを聞きながらテンションアゲアゲします。
3. ダウンロードしたファイルを配置する
イメージをビルドするのに、本体ファイルをdockerfilesに配置します。
cd docker-images/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1
cp ~/Downloads/linuxx64_12201_database.zip .
4. ビルド
引数の詳細はREADMEを参照してください。
cd ..
./buildDockerImage.sh -v 12.2.0.1 -e -i
以下のメッセージが出たら成功です。
マシンスペックにもよりますが、Macbookのパワー不足で20分もかかった…
Oracle Database Docker Image for 'ee' version 12.2.0.1 is ready to be extended:
--> oracle/database:12.2.0.1-ee
Build completed in 1221 seconds.
5. データ永続化用ディレクトリ
永続化するためのマウントディレクトリを作成しておきます。
権限周りの設定が必要なので、とりあえずフル権限つけておきます。
mkdir ./oradata
chmod 777 ./oradata
6. yamlファイルを作成
vi docker-compose.yaml
中身は以下になります。
使用できる環境変数はREADMEを参照してください。
version: '2'
services:
db:
image: oracle/database:12.2.0.1-ee
container_name: oracle
ports:
- 1521:1521
- 5500:5500
volumes:
- ./oradata:/opt/oracle/oradata
environment:
- ORACLE_PWD=Oracle12
- ORACLE_PDB=oracle
7. コンテナ作成
ここまで来たら、あとはコンテナを作成するだけです。
docker-compose up -d
初回起動は少し時間がかかりますので、
起動できたかどうかをログで確認しましょう。
docker logs -f oracle
こんなのが出たらOKです。
#########################
DATABASE IS READY TO USE!
#########################
docker ps
の方はこんな感じになります。
[skanehira@MacBook oracle]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
98b74482fc12 oracle/database:12.2.0.1-ee "/bin/sh -c 'exec $O…" 7 hours ago Up 2 hours (healthy) 0.0.0.0:1521->1521/tcp, 0.0.0.0:5500->5500/tcp oracle
[skanehira@MacBook oracle]$
8. 接続テスト
ローカルにsqplusがないので、コンテナ内で確認してみます。
docker ps
を見る限りポートマッピングは大丈夫そうなので、内部接続だけ確認します。
[skanehira@MacBook oracle]$ docker exec -it oracle bash
sqlplus SYSTEM/Oracle12@ORCLCDB[oracle@98b74482fc12 ~]$ sqlplus SYSTEM/Oracle12@ORCLCDB
SQL*Plus: Release 12.2.0.1.0 Production on Thu Jun 7 00:43:50 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Last Successful login time: Wed Jun 06 2018 17:48:20 +00:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL>
バッチリ!
9. imageのexportしておく
何かあった時に、もう一度ビルドするのは面倒なので…
イメージをexportしておきます。
docker export --output="oracle12.2.0.1-ee" oracle
最後に
めでたくOracle Database入ったので、ダブステップを聞きながら勉強します。
しばらく記事は書きませんが、資格取ったら報告も含め記事にする予定です。
では〜