如何连接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 run 得到的结果相同。

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

wrt 标签,这似乎是一张旧图像,请检查docker inspect ...一下它的制作时间。您可能还会看到其他标签。

对于较新的版本,您可以查看以下说明如何自行构建: https://github.com/3scale/oracle-database

更新:有关构建 Oracle 映像的更多官方说明的链接https://github.com/oracle/docker-images

相关内容