【问题标题】:Using docker-compose and starting containers but one of the containers not able to connect to other使用 docker-compose 并启动容器,但其中一个容器无法连接到其他容器
【发布时间】:2020-06-27 12:54:24
【问题描述】:

我正在使用 docker-compose 启动两个容器(名为 fd 和 fl4j)。第二个容器在启动时连接到第一个。

如果我只使用“主机”网络,而普通的“docker run”一切正常。

使用 docker-compose 和定义的桥接网络 (loggernw),第二个容器无法连接到第一个。可能不相关,但说明 - 第二个容器是 java spring-boot 应用程序。

附加信息:即使没有 docker-compose 但使用“docker run”和定义的桥接网络,连接尝试也会失败。另外,在第二个应用程序中,我使用字符串“127.0.0.1”来尝试连接。

docker-compose 下面-

version: '3.8'
services:
  fd:
    image: fluentwithes
    container_name: fd
    ports:
      - 24224:24224
    expose:
      - "24224"
    volumes:
      - /home/hrishikesh/work/bitbucket/logger/integration/docker/runs/fluentd:/fluentd/etc
    networks:
      - loggernw
  fl4j:
    image: fluentl4java
    container_name: fl4j
    ports:
      - 9090:9090
    expose:
      - "9090"
    networks:
      - loggernw
networks:
  loggernw:
    driver: bridge

【问题讨论】:

  • 我遇到了同样的问题,这是因为一个容器依赖于另一个容器,正如@thompson 在他的回答中给出的那样。你可以试试stackoverflow.com/a/61026377/6310485

标签: docker docker-compose docker-networking


【解决方案1】:

可能第二个容器在第一个容器正常运行之前尝试连接。 尝试在第二个容器中使用 depends_on,如下所示。 但是,我认为这只会阻止第二个容器在第一个容器开始之前启动。您仍然可能遇到问题,因为第一个没有及时完成启动。然后您的第二个服务必须进行一些重试。所以也许 restart: always 就足够了。

version: '3.8'
services:
  fd:
    image: fluentwithes
    container_name: fd
    ports:
      - 24224:24224
    expose:
      - "24224"
    volumes:
      - /home/hrishikesh/work/bitbucket/logger/integration/docker/runs/fluentd:/fluentd/etc
    networks:
      - loggernw
  fl4j:
    depends_on: 
      - fd
    restart: always
    image: fluentl4java
    container_name: fl4j
    ports:
      - 9090:9090
    expose:
      - "9090"
    networks:
      - loggernw
networks:
  loggernw:
    driver: bridge

编辑:

我认为 127.0.0.1 是错误的。您想将服务名称放在那里。 IP可能会改变。 尝试将第二个容器“fd:24224”作为连接字符串。 在这里找到更多信息。 https://docs.docker.com/network/bridge/

【讨论】:

  • 谢谢。是的,第二个容器在第一个容器启动之前尝试。但是,即使我停止第二个并确保第一个正在运行然后再次启动第二个,仍然是同样的问题。然后第一个运行正常,可以通过 curl 从外部访问。
  • 精湛的@thompson。在第二个容器中使用 fd:24224 作为 conn 字符串有效。它支付给 RTFM !
猜你喜欢
  • 2020-06-24
  • 1970-01-01
  • 2021-11-21
  • 2021-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-09
  • 1970-01-01
相关资源
最近更新 更多