2 Docker 容器 (JBOSS/DATABASE) 之间的网络连接

Network connection between 2 Docker Container (JBOSS/DATABASE)

我正在尝试在 2 个 Docker 容器之间建立连接。 第一个是 postgres 数据库,第二个是 jboss.

我正在使用 ansible,这是我的 Playbook:

---
- hosts: localhost

  tasks:
  - name: start postgresql
    docker:
      name: mypostgres
      image: MYIMAGE_POSTGRES
  ports:
    - 5432:5432
  expose:
    - 5432:5432
  state: started
  env:
    DB_USER: "user"
    DB_PASS: "pass"
    DB_NAME: "name"

  - name: start jboss
    docker:
      name: jboss
  image: MYIMAGE_JBOSS
  ports:
    - 1099:1099
  expose:
    - 1099:1099
  state: running
  env:
      POSTGRES_PORT_5432_TCP_ADDR: "172.17.0.2"
      POSTGRES_PORT_5432_TCP_PORT: 5432
      HIBERNATE_CREATE_DDL: ""
      DB_NAME: "name"
      DB_USER: "user"
      DB_PASS: "pass"

如果我同时启动 docker 个图像,则数据库与 jboss 之间没有连接。 在我的配置中有什么我遗漏的吗?

非常感谢, 帕斯卡

您需要 link postgres 容器到 jboss 容器。为此,请使用 link 选项

...

docker:
  name: jboss
  image: MYIMAGE_JBOSS
  ports:
    - 1099:1099
  expose:
   - 1099:1099
  links:
   -mypostgres
  state: running
    env:
      POSTGRES_PORT_5432_TCP_ADDR: "mypostgres"
      POSTGRES_PORT_5432_TCP_PORT: 5432
      HIBERNATE_CREATE_DDL: ""
      DB_NAME: "name"
      DB_USER: "user"
      DB_PASS: "pass"
...