如何使用docker-compose将docker oracle容器ipjoin到java应用程序中?

下面的代码我使用docker-compose:

integration_test: image: service:1.0.0 volumes: - .:/service links: - oracle_container # used volumes_from as workaround to wait until the following containers to start volumes_from: - oracle_container container_name: integration_test tty: true environment: USER: go command: ["mvn clean install -DskipTests"] oracle_container: image: inmage_name:1.0.0 container_name: oracle_container ports: - "49161:1521" 

我想让这两个容器谈谈应用程序 – >甲骨文

两个容器都在同一台机器上运行,我使用下面的jdbcstring通过应用程序连接oracle,

JDBC:预言:瘦:@localhost:49161 / XE

但是iam不能连接oracle和它的抛出SQLRecoverableexception。

根据我的理解,这是在Dockernetworking下,我已经使用链接来连接两个容器。 但这个问题是与连接string,更具体地说,在Oracle容器的IP。

有人可以帮助解决这个问题吗?

你需要使用

 jdbc:oracle:thin:@oracle_container:1521/xe 

在docker-compose中,每个容器可以到达其他服务名称的容器名称。 你不应该只使用主机端口而是使用容器端口