0

随机或在 docker-compose down/up 之后,我的应用程序无法在容器主机 ip 上访问。

我使用 NAT 作为 docker 网络,从容器内我可以 ping 到其他容器/互联网/到达应该打开的端口。如果我做另一个 docker compose down / up 那么它会再次正常工作。

如何以正确的方式解决此问题?

docker 版本 17.06.2-ee11 Windows server 2016 build 1709

4

1 回答 1

1

您可能在网络堆栈中遇到了错误。我最近遇到了同样的问题,它显示了以下额外的奇怪之处。

  • 出现问题时,如果您使用 PowerShell Test-NetConnection 检查端口,它将在打开和关闭之间随机切换。
  • 如果您对请求运行数据包监视器(例如,wireshark),您将看到初始连接握手通常成功,但随后发生了一些事情,您将开始看到在连接断开之前多次重新传输。

对我们来说,问题实际上出现在 5 节点集群中。突然间,容器的随机副本会在不同的节点上停止响应,节点似乎每次都不同。

在花了将近一周的时间确保我们没有采取任何措施导致这种情况之后,我向 Microsoft 记录了一个支持请求,并在昨天(有趣的时间)收到确认,这确实是网络堆栈中的一个错误,目前仍在调查中。

因此,如果您遇到了同样的错误,目前它仍在调查中,没有建议的解决方法,超出您已经发现的只是重新启动容器的问题。

于 2018-05-24T08:59:23.617 回答