Docker Swarm无法与自定义覆盖网络上的其他节点通信

Docker Swarm无法与自定义覆盖网络上的其他节点通信,docker,networking,overlay,vps,swarm,Docker,Networking,Overlay,Vps,Swarm,我的swarm中有4个节点,其中两个在香港,其他在美国。我在swarm中创建了4项服务: Service Location foo USA bar HK haha USA hehe HK 这些服务使用相同的覆盖网络。 当我在香港的服务中尝试pingfoo或pinghaha时,主机无法解析。但当我在香港的服务中pingbar或pinghehe时,它就起作用了 任何帮助都将不胜感激,谢谢 我确信所有必需的端口都是开放的和可访问的 我使用以下

我的swarm中有4个节点,其中两个在香港,其他在美国。我在swarm中创建了4项服务:

Service    Location
foo        USA
bar        HK
haha       USA
hehe       HK
这些服务使用相同的覆盖网络。 当我在香港的服务中尝试
pingfoo
pinghaha
时,主机无法解析。但当我在香港的服务中
pingbar
pinghehe
时,它就起作用了

任何帮助都将不胜感激,谢谢

我确信所有必需的端口都是开放的和可访问的

我使用以下命令创建服务:

docker network create -d overlay --attachable test_net
docker service create --name foo --network test_net nginx:alpine

您需要确保docker主机之间的以下端口处于打开状态:

  • 用于群集管理通信的TCP端口2377

  • 用于节点间通信的TCP和UDP端口7946

  • 覆盖网络流量的UDP端口4789


有关更多详细信息,请参见以下内容:

我使用netcat检查了这些端口,它们在docker主机之间是开放的。这将有助于提供更多详细信息。在同一主机上同一覆盖上的两个容器之间ping时会发生什么情况?您尝试ping的两个容器是否在同一覆盖网络上?给我们命令和配置,让我们知道你想做什么。如果它无法将DNS名称解析为IP,则这是DNS问题,而不是“我无法访问主机”问题。