データベースの作成
本稿では、Dockerを使用してOracleデータベースExpress Editionを実行する方法を示します.
git
Docker
Oracle binaries (オプション)
DockerHubではPostgreSQLやMariADBなどの一般的なデータベースのほとんどの画像を見つけることができます.しかし、それがオラクルに来るとき、すべての良いものは終わります.
著作権の理由のために、Oracleは、引かれることができて、Dockerインスタンスで動くイメージを提供しません.
しかし、奇妙にも、彼らは別の解決策を提供しました.
Oracleは、Oracleデータベースを含む製品提供の多くをセットアップするのを助けるDocker構築スクリプトのスイートを利用できました.これらのスクリプトはGitHub repository .
事前にダウンロードされたバイナリを必要としない唯一のバージョンであるので、バージョン18.4.0 - xeを展開します.他のバージョンについては、後述する必要なバイナリをダウンロードする必要があります.
注意:全てのステップ(オプション)はバージョン18.4.0 - xeでスキップできますが、他のバージョンでも必要です.
移動するOracle Download page . 必要なDBバージョンをダウンロードしてください
Docker画像を表示します
を介してコンテナのステータスをチェックすることができます
コンテナの状態を確認する別の方法は、コンテナログを探しています.
任意のクライアントを使用してデータベースを接続することができます.私が使った例ではdbeaver :
あるいは、コンテナ内のbashセッションを作成します
現在、データベースは動作していますが、コンテナの実行には多くの時間が必要です.次の記事では、別のメソッドを使用して起動時間を改善する方法を示します.
https://github.com/oracle/docker-images
https://blogs.oracle.com/oraclemagazine/deliver-oracle-database-18c-express-edition-in-containers
要件
git
Docker
Oracle binaries (オプション)
なぜOracleに専用投稿?
DockerHubではPostgreSQLやMariADBなどの一般的なデータベースのほとんどの画像を見つけることができます.しかし、それがオラクルに来るとき、すべての良いものは終わります.
著作権の理由のために、Oracleは、引かれることができて、Dockerインスタンスで動くイメージを提供しません.
しかし、奇妙にも、彼らは別の解決策を提供しました.
データベースの実行
Oracleは、Oracleデータベースを含む製品提供の多くをセットアップするのを助けるDocker構築スクリプトのスイートを利用できました.これらのスクリプトはGitHub repository .
事前にダウンロードされたバイナリを必要としない唯一のバージョンであるので、バージョン18.4.0 - xeを展開します.他のバージョンについては、後述する必要なバイナリをダウンロードする必要があります.
注意:全てのステップ(オプション)はバージョン18.4.0 - xeでスキップできますが、他のバージョンでも必要です.
(オプション) Oracleバイナリをダウンロードする
移動するOracle Download page . 必要なDBバージョンをダウンロードしてください
oracle-database-xe-18c-1.0-1.x86_64.rpm
クローンオラクル
$ git clone https://github.com/oracle/docker-images.git
(オプション)データベースフォルダをプロジェクトフォルダにコピーする
$ cp /path/to/file/oracle-database-xe-18c-1.0-1.x86_64.rpm /path/to/project/docker-images/OracleDatabase/SingleInstance/dockerfiles/18.4.0
インストーラを実行します。オプションの説明については、コマンドヘルパー
$ cd docker-images/OracleDatabase/SingleInstance/dockerfiles
$ ./buildContainerImage.sh -v 18.4.0 -x
警告:スクリプトを終了する前に最大30分かかることができます画像チェック
Docker画像を表示します
$ docker images
としてタグ付けされたイメージのチェックoracle/database 18.4.0-xe
画像のサイズに注意してください.インストールは完全に完了しませんが、スクリプトは問題を報告することなく終了します.イメージは、およそコンテナを実行する
$ docker run --name oracle \
-d \
-p 51521:1521 \
-p 55500:5500 \
-e ORACLE_PWD=mysecurepassword \
-e ORACLE_CHARACTERSET=AL32UTF8 \
oracle/database:18.4.0-xe
どこ--name
: コンテナ名-d
: 分離モードでコンテナを起動します-p 51521:1521
and -p 55500:5500
コンテナポートにホストをマップします.-e ORACLE_PWD=mysecurepassword
and -e ORACLE_CHARACTERSET=AL32UTF8
環境変数を設定します.こちらです.ORACLE_PWD
管理パスワードを設定し、ORACLE_CHARACTERSET
データベースの文字セットを設定します.docker run
コマンドを探すSTATUS
フィールド$ d ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f7776a6dd664 oracle/database:18.4.0-xe "/bin/sh -c 'exec $O…" About a minute ago Up About a minute (health: starting) 0.0.0.0:51521->1521/tcp, :::51521->1521/tcp, 0.0.0.0:55500->5500/tcp, :::55500->5500/tcp oracle
この例では、コンテナはまだ起動していますhealth: starting
). いったんコンテナが起動すると、ステータスはhealty
.コンテナの状態を確認する別の方法は、コンテナログを探しています.
$ docker logs oracle
## Omitted for brevity
*******************
Prepare for db operation
7% complete
Copying database files
29% complete
Creating and starting Oracle instance
30% complete
31% complete
34% complete
38% complete
41% complete
43% complete
Completing Database Creation
47% complete
50% complete
Creating Pluggable Databases
54% complete
71% complete
Executing Post Configuration Actions
93% complete
Running Custom Scripts
100% complete
Database creation complete. For details check the logfiles at:
/opt/oracle/cfgtoollogs/dbca/XE.
Database Information:
Global Database Name:XE
System Identifier(SID):XE
Look at the log file "/opt/oracle/cfgtoollogs/dbca/XE/XE.log" for further details.
Connect to Oracle Database using one of the connect strings:
Pluggable database: 2540b6bf28f7/XEPDB1
Multitenant container database: 2540b6bf28f7
Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE
The Oracle base remains unchanged with value /opt/oracle
#########################
DATABASE IS READY TO USE!
#########################
コンテナを起動するたびに、データベースインスタンスをインストールする必要がありますので、コンテナは準備ができてから数分かかります.データベースへの接続
任意のクライアントを使用してデータベースを接続することができます.私が使った例ではdbeaver :
あるいは、コンテナ内のbashセッションを作成します
oracle
:$ docker exec -it --user=oracle oracle bash
Oracleデータベースに必要なLinux環境変数を設定します.bash-4.2# . oraenv
ORACLE_SID = [XE] ?
The Oracle base remains unchanged with value /opt/oracle
次に、任意のOracleデータベースシステムにアクセスするSQL *プラス:bash-4.2# sqlplus sys@XEPDB1 as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Mon Aug 23 19:49:33 2021
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SQL>
今度来る
現在、データベースは動作していますが、コンテナの実行には多くの時間が必要です.次の記事では、別のメソッドを使用して起動時間を改善する方法を示します.
ソース
https://github.com/oracle/docker-images
https://blogs.oracle.com/oraclemagazine/deliver-oracle-database-18c-express-edition-in-containers
Reference
この問題について(データベースの作成), 我々は、より多くの情報をここで見つけました https://dev.to/zankyr/create-an-oracle-database-docker-image-1e2nテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol