gpt4 book ai didi

docker - Docker Compose V2网络错误

转载 作者:行者123 更新时间:2023-12-02 21:24:16 24 4
gpt4 key购买 nike

我正在尝试在两个容器之间进行通信,但无法执行相同操作。
我在docker compose中添加了一个名为“服务器”的服务,该服务依赖于另一个名为“端点”的服务。
我需要将“端点”的ip和端口传递给“服务器”,并且我在做以下操作

command: -userver -e endpoint:51393

但是现在我使用下面的命令在主机列表中没有看到“端点”:
docker-compose exec server cat /etc/hosts

输出如下:
127.0.0.1       localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.21.0.3 49f4808fa677

我的完整docker-compose.yml文件如下:
version: '2'

services:
endpoint:
build:
context: .
dockerfile: Dockerfile
image: myimage_end:0.1
command: -uendpoint
ports:
- 51393:51393
networks:
- internal

server:
build:
context: .
dockerfile: Dockerfile
image: myimage_server:0.1
command: -userver -e endpoint:51393
ports:
- 51392:51392
depends_on:
- endpoint
networks:
- internal
volumes:
- /local_path/dataset:/dataset

networks:
internal:
driver: bridge

最佳答案

当您使用当前版本的docker compose时,不再需要通过操作容器的hosts文件来完成从另一个容器到达另一个容器的操作,因为这是一个非常静态的设置。

如今,docker-compose使用某种dns服务,该服务允许同一网络中的所有容器在其服务名称下相互查看。这允许从属容器停止,而不会导致从属容器也停止/重新启动。为此,您也无需指定depends_on。仅在重新启动依赖项时才触发重新启动依赖服务。

有关更多详细信息,请查看关于联网的docker-compose docs

一些用于调试情况的命令:

docker-compose exec server nslookup endpoint

docker inspect <container_name_of_service>

关于docker - Docker Compose V2网络错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41432297/

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