2

我现在正在开发一个带有两个 docker 容器的 docker 项目——一个用于 oracle db,另一个用于 java 应用程序。

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

我用来拉取和使用 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 db 交互,我使用下面给出的命令运行它:

docker run -it --name mypgm myrepo/oracletesting

它运行一个交互式 java 程序,询问 Oracle DB 详细信息并允许用户与 DB 交互。

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

我给出的值如下:

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

我不知道哪里出了问题,但它不起作用。在检查了 docker 容器 IP 地址后,我尝试为 Connection URL 提供不同的输入:

连接网址:jdbc:oracle:thin:@ 172.17.0.2:1521 :orcl11g

我是否提供了正确的连接 URL 和/或端口号?有人可以帮我正确连接这两个容器并让项目动起来吗?

谢谢你的帮助。。

4

2 回答 2

1

您必须链接容器。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

用作以下字符串 jdbc:oracle:thin:@oracle-db:1521:orcl11g 的连接 url

于 2016-10-15T19:25:53.247 回答
0

您可以在 oracle 连接字符串中使用域名:oracle.dbhost.com,并--addhost oracle.dbhost.com:[ip address]在 docker 中运行您的应用程序时使用 a ,或者配置一个 dns 来解析域名。

于 2016-07-28T16:02:52.443 回答