从与oracle数据库容器位于同一网络的容器上的桌面访问Web应用程序时出现网络适配器错误

时间:2019-10-29 13:49:16

标签: docker

我正在自己的网络上运行最新的oracle容器和tomcat容器tomcat:9.0.22-jdk8,并且使用了以下命令:

docker network create mynetwork

docker run -dit -p 8080:8080 -e JPDA_ADDRESS=8000 -p 8000:8000 -e JAVA_OPTS=’-Dconfig.file=/usr/local/tomcat/temp/config.properties -Xmx512m’ --name rcmc rcm-container:0.1 catalina.sh jpda run

docker run -dit -p 1521:1521 --name rcmdb rcmoracledatabase:0.1

docker network connect mynetwork rcmc
docker network connect mynetwork rcmdb

使用这些tnsnames.ora条目,我可以从桌面登录数据库容器而不会出现任何问题:

ORCLCDB=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.0.0.0)(PORT=1521))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCLCDB.localdomain)))
ORCLPDB1=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.0.0.0)(PORT=1521))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCLPDB1.localdomain)))

当我尝试从Web应用程序登录http://localhost:8080/时,出现服务器500错误,但以下情况除外:

oracle.net.ns.NetException:网络适配器无法建立连接 java.sql.SQLRecoverableException:IO错误:网络适配器无法建立连接

我尝试了以下JDBC连接字符串,但似乎无法连接到oracle容器。

jdbc:oracle:thin:@rcmdb:1521:ORCLCDB jdbc:oracle:thin:@rcmdb:1521:ORCLCDB.localdomain jdbc:oracle:thin:@ 0.0.0.0:1521:ORCLCDB jdbc:oracle:thin:@ 0.0.0.0:1521:ORCLCDB.localdomain

这些命令可在我同事的笔记本电脑上使用,但他在桌面上运行docker工具箱

我的码头工人信息 内核版本:4.9.184-linuxkit 操作系统:Docker Desktop 操作系统类型:linux

他的码头工人信息 内核版本:4.14.116-boot2docker 操作系统:Boot2Docker 18.09.6(TCL 8.2.1) 操作系统类型:linux

我想念什么吗?我需要检查任何设置吗?

提前感谢您提供任何信息。

1 个答案:

答案 0 :(得分:0)

在阅读此documentation时,以下内容起作用了

jdbc:oracle:thin:@ host.docker.internal:1521:ORCLCDB