Docker Swarm覆盖网络-容器无法通信

时间:2020-03-03 20:45:29

标签: linux windows docker networking docker-swarm

Tl; dr:使用覆盖网络的Docker群集容器无法彼此ping通

我正在尝试创建一个群集,其中包括我的桌面(带有Docker桌面的Windows)和一个Ubuntu VM(桌面PC上的群集管理器)。

创建群体并将其加入可以正常工作。我着手创建一个可附加的覆盖网络,该网络应使用覆盖驱动程序跨越所有节点。我使用全局模式和覆盖网络创建了一个随机的nginx服务,以使该网络在所有节点上都可用。

为了测试连接性,我创建了两个ubuntu容器(一个在Ubuntu上,一个在Windows上),然后将它们加入网络。问题是容器无法互相ping通。我还打开了Windows和Ubuntu VM上的swarm所需的端口(2376、2377、7946、4789)。

适用于Linux的Docker版本:

Version: 19.03.6 API version: 1.40 Go version: go1.12.16

适用于Windows的Docker版本:

Version: 19.03.5 API version: 1.40 Go version: go1.12.12

您知道我如何使连接正常工作吗?

1 个答案:

答案 0 :(得分:1)

发现您的问题,因为我遇到了类似的情况。

文档指出覆盖网络在默认情况下是加密的,您不应尝试将 Windows 节点附加到加密网络:

<块引用>

不要将 Windows 节点附加到加密的覆盖网络。

Windows 不支持覆盖网络加密。如果 Windows 节点尝试连接到加密的覆盖网络,则不会检测到任何错误,但该节点无法通信。

https://docs.docker.com/network/overlay/#encrypt-traffic-on-an-overlay-network