gpt4 book ai didi

Docker ping 其他节点上的容器

转载 作者:行者123 更新时间:2023-12-04 20:12:32 24 4
gpt4 key购买 nike

我有 2 个虚拟机(IP 为 192.168.56.101 的 VM1 和 IP 为 192.16.56.102 的 VM2,它们可以相互 ping 通),这些是我正在执行的步骤:

- Create consul container on VM1 with 'docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap'
- Create swarm manager on VM1 with 'docker run -d -p 3376:3376 swarm manage -H 0.0.0.0:3376 --advertise 192.168.56.101:3376 consul://192.168.56.101:8500
- Create swarm agents on each VM with 'docker run -d swarm join --advertise <VM-IP>:2376 consul://192.168.56.101:8500

如果我运行 docker -H 0.0.0.0:3376 info 我可以看到两个节点都连接到 swarm 并且它们都是健康的。我还可以运行容器并将它们安排到节点。但是,如果我创建一个网络并将几个节点分配给该网络,然后通过 SSH 连接到一个节点并尝试对所有其他节点执行 ping 操作,我只能访问在同一虚拟机上运行的节点。

两个虚拟机都有这些 DOCKER_OPTS:

DOCKER_OPTS = DOCKER_OPTS="--cluster-store=consul://192.168.56.101:8500 --cluster-advertise=<VM-IP>:0 -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock"

最佳答案

我没有直接引用,但根据我在 Docker GitHub 问题跟踪器上阅读的内容,ICMP 数据包 (ping) 永远不会在不同节点上的容器之间路由。

到显式打开端口的 TCP 连接应该可以工作。但是从 Docker 1.12.1 开始,它是有问题的。

Docker 1.12.2 修复了一些与其他主机上的容器建立连接的问题。但是 ping 不能跨主机工作。

关于Docker ping 其他节点上的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38683048/

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