OracleデータベースDockerイメージを接続する方法

OracleデータベースDockerイメージを接続する方法

私は Oracle データベースの Docker イメージを登録し、以下のリンクからイメージを取得しました。

docker pull store/oracle/database-enterprise:12.2.0.1

このページには他のタグは表示されません。しかし、どういうわけか 12.1.0.2 に関する情報を入手しました。

12.2.0.1 では、データベースを実行して接続できます。しかし、12.1.0.2 では、データベースに接続できません。

docker service create --with-registry-auth --network=oracle_net --name Oracledb_39 -p target=1521 store/oracle/database-enterprise:12.2.0.1

上記のコンテナは動作していますが、以下のタグを使用するとデータベースに接続されません。

docker service create --with-registry-auth --network=oracle_net --name Oracledb_39 -p target=1521 store/oracle/database-enterprise:12.1.0.2

12.1.0.2 と dbeaver クライアントを接続します:

12.1.0.2との接続

しかし、12.2.0.1では接続可能

12.2.0.1との接続

12.1.0.2または12.1.xに接続する方法を教えてください

また、Oracle データベース Docker イメージで使用可能なすべてのタグを確認する方法も共有してください。

テストのために swarm にデプロイしましたが、直接 docker を実行しても同じ結果になりました。

docker exec -it Oracledb_38.1.k3who8un6hs9vulwljwvhx4x4 sqlplus sys@ORCLCDB

容器の中身:

[root@bf9581972c5a /]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 12:07 ?        00:00:00 /bin/bash /home/oracle/setup/dockerInit.sh
root        34     1  0 12:09 ?        00:00:00 tail -f /home/oracle/setup/log/dockerInit.log
root        40     0  0 19:09 pts/0    00:00:00 bash
root        60    40  0 19:10 pts/0    00:00:00 ps -ef

[root@bf9581972c5a /]# sqlplus
bash: sqlplus: command not found

コンテナログ:

[ec2-user@ip-172-31-47-251 ~]$ docker logs Oracledb_38.1.k3who8un6hs9vulwljwvhx4x4
User check : root.
Setup Oracle Database
Oracle Database 12.1.0.2 Setup
Tue Aug 3 12:07:09 UTC 2021

Check parameters ......
log file is : /home/oracle/setup/log/paramChk.log
paramChk.sh is done at 0 sec

untar DB bits ......
log file is : /home/oracle/setup/log/untarDB.log
untarDB.sh is done at 153 sec

config DB ......
log file is : /home/oracle/setup/log/configDB.log
grep: /home/oracle/setup/log/configDBora.log: No such file or directory
configDB.sh is done at 153 sec

Done ! The database is ready for use .
Tue Aug 3 12:07:09 UTC 2021
User check : root.
Setup Oracle Database

コンテナは実行状態のみですが、dbeaver または他の Oracle クライアント アプリケーションを使用して接続しようとしても接続できません。

答え1

コンテナのステータスをチェックして、DB が実行中かどうかを確認することをお勧めします。

このリンクには、コンテナ内のOracleに関する多くの情報が掲載されています(クレジット:チャックそして彼のコメント)。

https://www.toadworld.com/platforms/oracle/b/weblog/archive/2017/06/21/modularization-by-using-oracle-database-containers-and-pdbs-on-docker-engine

タグに関しては、これは古い画像のようです。docker inspect ...いつ作成されたかを確認してください。他のタグも表示される可能性があります。

新しいバージョンについては、自分でビルドする方法の手順を次の場所で確認できます。 https://github.com/3scale/oracle-database

更新: Oracle イメージを構築するためのより公式な手順へのリンク参考:

関連情報