连接Oracle数据库容器和Java应用程序容器(Docker)

我现在正在一个docker项目中使用两个docker容器 – 一个用于oracle数据库,另一个用java应用程序。

oracle db的容器工作正常。 我使用了已经build好的oracle映像,并在其中创build了我的表空间和用户。

我用来拉和使用oracle db容器的命令如下:

docker pull wnameless/oracle-xe-11g docker run -d -p 49160:22 -p 49161:1521 -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g 

现在我有我自己的Java应用程序与Oracle数据库交互,我使用下面的命令运行它:

 docker run -it --name mypgm myrepo/oracletesting 

它运行一个交互式java程序,要求提供Oracle数据库的详细信息,并允许用户与数据库进行交互。

但是我不知道如何指定详细信息,如驱动程序名称,连接URL,用户名和密码

我给的价值如下:

驱动程序名称:oracle.jdbc.OracleDriver连接URL:jdbc:oracle:thin:@ localhost:1521 :orcl11g用户名:imtheuser密码:**********

我不知道什么地方出了问题,但它不工作。 我在检查Docker容器的IP地址后也试着给Connection URL提供不同的input:

连接URL:jdbc:oracle:thin:@ 172.17.0.2:1521:orcl11g

我给连接URL和/或端口号是否正确? 有人可以帮助我正确连接这两个容器,并让项目移动?

感谢您的亲切帮助..

你必须链接容器。 oracle容器应该有一个名字。

尝试以下方法:

  docker network create my-network # Create a network for containers docker run -d -p 49160:22 -p 49161:1521 --network my-network --name oracle-db -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g docker run -it --network my-network --name mypgm myrepo/oracletesting 

使用连接url作为以下stringjdbc:oracle:thin:@ oracle-db:1521:orcl11g

您可以在oracle连接string中使用一个域名: oracle.dbhost.com ,并在--addhost oracle.dbhost.com:[ip address]运行应用时使用--addhost oracle.dbhost.com:[ip address] ,或者configuration一个dns来parsing域名。