无法使Windows Server 2019入口网络上的Docker Swarm在容器之间工作

无法使Windows Server 2019入口网络上的Docker Swarm在容器之间工作,docker,networking,docker-swarm,windows-server-2019,docker-ingress,Docker,Networking,Docker Swarm,Windows Server 2019,Docker Ingress,我发现一些帖子提到了在WindowsServer2019上使用覆盖网络对路由网格的支持(参考文献如下) 经过大量故障排除,我无法在使用以下网络和服务创建的用户定义覆盖网络上正确配置2个简单容器: docker network create -d overlay --attachable testnet docker service create -d --name web --network testnet --publish 80:80 microsoft/iis docker service

我发现一些帖子提到了在WindowsServer2019上使用覆盖网络对路由网格的支持(参考文献如下)

经过大量故障排除,我无法在使用以下网络和服务创建的用户定义覆盖网络上正确配置2个简单容器:

docker network create -d overlay --attachable testnet
docker service create -d --name web --network testnet --publish 80:80 microsoft/iis
docker service create -d --network testnet --name pingweb mcr.microsoft.com/windows/nanoserver:1809 ping web
在端口80上浏览docker主机时,我可以访问iis网站,但当我的其他容器
pingweb
位于同一覆盖网络上时,它们无法ping我的主
web
容器

PS C:\Users\me> docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
ga8egf2nwsir        ingress             overlay             swarm
bf164fa77349        nat                 nat                 local
81fb626259e1        none                null                local
l9p7c8p2fy3g        testnet             overlay             swarm
PS C:\Users\me> docker service create -d --name web --network testnet --publish 80:80 microsoft/iis
mk3r1a7za4jk21321kmzlddxr
PS C:\Users\me> docker service create -d --network testnet --name pingweb mcr.microsoft.com/windows/nanoserver:1809 ping web
j3z0xso7shghctva3od9qct10
PS C:\Users\me> docker service logs pingweb
pingweb.1.wbtpizulcxvg@WS2019DockerNode1    |
pingweb.1.wbtpizulcxvg@WS2019DockerNode1    | Pinging web [10.0.29.180] with 32 bytes of data:
pingweb.1.wbtpizulcxvg@WS2019DockerNode1    | Request timed out.
pingweb.1.wbtpizulcxvg@WS2019DockerNode1    | Request timed out.
pingweb.1.wbtpizulcxvg@WS2019DockerNode1    | Request timed out.
pingweb.1.wbtpizulcxvg@WS2019DockerNode1    | Request timed out.
pingweb.1.wbtpizulcxvg@WS2019DockerNode1    |
pingweb.1.wbtpizulcxvg@WS2019DockerNode1    | Ping statistics for 10.0.29.180:
pingweb.1.wbtpizulcxvg@WS2019DockerNode1    |     Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
PS C:\Users\me>
我还注意到,每当我的pingweb容器位于覆盖网络上时,我无法ping外部站点。我已经测试了ping
8.8.8.8
,但在覆盖网络上运行时,它不起作用,因为我收到的
请求超时
与我在
testnet
网络上尝试ping我的
web
容器时的请求超时相同

docker service create -d --network testnet --name pingweb mcr.microsoft.com/windows/nanoserver:1809 ping 8.8.8.8
问题:

  • 这是一个已知的问题吗
  • 我怎样才能让它工作
  • 参考资料:

    在Windows上发布Docker入口模式服务

    Windows客户强烈要求与Linux服务发布选项对等。通过在Windows Server 1709中使用入口模式添加对服务发布的支持,可以使用Docker的路由网格,允许外部端点通过群中的任何节点访问服务,而不管哪些节点正在运行服务任务

    这些网络改进还在使用覆盖网络时解锁基于VIP的服务发现,这样Windows用户就不局限于DNS循环

    有关改进的详细信息,请查看Microsoft虚拟化博客上的相应文章


    在这方面进行了大量的努力之后,发现该修复程序是作为Windows Server 2019更新的一部分提供的KB4580390

    Github围绕这一问题展开讨论:

    更新并修复问题: