两个Docker容器之间的连接

时间:2018-09-17 12:03:45

标签: docker containers

在此问题中,我指的是以下问题的答案:here。我有两个docker容器。在其中一个中,我有我的数据库,在另一个中,我有一个詹金斯服务器。后者已经创建并正在运行。我的数据库的Docker容器创建如下:

docker run -d --name postgres -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password -e POSTGRES_DB=postgres -p 127.0.0.1:5432:5432  postgres:10.4-alpine

然后我通过

创建了一个nework
docker network create --driver=bridge postgres_jenkins_network

并使用

将两个容器都放入此网络中
docker network connect postgres_jenkins_network postgres
docker network connect postgres_jenkins_network jenkins

不幸的是,由于出现以下错误,我的jenkins无法连接到我的postgres数据库:

org.postgresql.util.PSQLException: Connection to localhost:5432 refused

由jenkins测试的我的应用程序具有以下应用程序属性和yml数据:

application.properties

spring.profiles.active=dev

application.yml

  spring:
  profiles: dev

  datasource:
    platform: postgres
    driver-class-name: org.postgresql.Driver
    url: jdbc:postgresql://localhost:5432/postgres
    username: user
    password: password

server:
  servlet:
    context-path: /mep
  port: 9000

看来,我的应用程序无法访问数据库,但我不知道为什么会这样。

感谢您的帮助 马赛厄斯

1 个答案:

答案 0 :(得分:2)

据我所知,您必须在 application.yml 文件的网址中使用 postgres 而不是 localhost :{ {1}} 因为您要连接到在容器中运行的名为 postgres 的postgres数据库服务器。

相关问题