gpt4 book ai didi

docker - 使用docker-compose和启动容器,但其中一个容器无法连接到其他容器

转载 作者:行者123 更新时间:2023-12-02 20:56:39 25 4
gpt4 key购买 nike

我正在使用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

最佳答案

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

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/

关于docker - 使用docker-compose和启动容器,但其中一个容器无法连接到其他容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62610279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com