Spring 从web应用连接到Oracle DB docker容器

Spring 从web应用连接到Oracle DB docker容器,spring,docker,Spring,Docker,我在同一台主机上运行一个tomcat容器,我在其中部署了一个web应用程序和一个oracle DB容器。我正在使用以下设置从web应用程序连接到oracle DB容器: spring.datasource.url: jdbc:oracle:thin:@<IP of the host>:1521:xe spring.datasource.username=sa spring.datasource.password= spring.datasource.driverClassName=

我在同一台主机上运行一个tomcat容器,我在其中部署了一个web应用程序和一个oracle DB容器。我正在使用以下设置从web应用程序连接到oracle DB容器:

spring.datasource.url: jdbc:oracle:thin:@<IP of the host>:1521:xe 
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url:jdbc:oracle:thin:@:1521:xe
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.drivercassname=com.mysql.jdbc.Driver
当我向主机公开端口1521时,我希望能够连接到Oracle DB而不会出现任何问题,此外,我可以使用上述设置,使用DbVisualizer从笔记本电脑连接到Oracle DB。我还进入了tomcat容器并成功地ping了主机

我知道在运行“docker run”命令时可以链接两个容器,但我想知道它是否也可以这样工作


有什么想法吗?谢谢

一种简单的方法是使用docker compose:

docker-compose.yml

version:'3'
services:
  app:
    // if you got a custom dockerfile
    build: . 
    links:
      - db
  db:
    image: oracledb
应用程序中的db主机将为“db”:
spring.datasource.url:jdbc:oracle:thin:db:1521:xe

同时运行Bunded contanier是:
docker compose up--build


我希望你觉得它有用。

谢谢,德文,我知道docker compose,但我认为我的设置也应该可以。顺便说一下,这并不是docker compose的具体内容。默认情况下,连接到同一
docker network create
网络的所有容器都可以通过要连接到的容器的
--name
解析其ip地址。还有一种方法可以使用
--net alias
添加别名。在后台,docker compose使用网络别名功能设置与docker compose文件中的服务名称匹配的别名。