【发布时间】:2017-07-14 01:43:21
【问题描述】:
我不确定这是否是当前版本的 Windows Docker 网络的问题,还是我的配置不佳和误解,但我有以下设置:
- 2 个 Docker 容器(使用 Microsoft/ASP.NET 映像作为基础构建)在每个容器中运行一个 .NET MVC 应用程序。
- 1 个运行 SQL Server 的 Docker 容器(使用 Microsoft/mssql-server-windows 映像构建)
当我创建所有 3 个容器时,一切正常,我可以使用它们的名称附加和 ping 所有其他容器,而不会出现任何问题。应用程序运行并可以如我所愿地相互通信。
但是,当我重新启动机器并再次启动所有容器时,它们无法再使用它们的名称相互 ping/通信(使用 IP 地址很好)。
我已在默认 NAT 网络上尝试过此操作,还尝试将 NAT 网络替换为我自己的自定义 NAT 网络。
为了解决这个问题,我必须为每个容器运行强制网络断开命令:
docker network disconnect nat <containername> --force
然后我必须在启动它们之前将每个容器重新连接到网络。然后,所有容器都可以使用它们的名称和 IP 地址相互 ping/通信。
仅供参考,这是一个开发环境,但我希望使用 Windows Server 2016 VM 在 Azure 中做类似的事情,虽然我不太清楚现场生产的最佳网络配置是什么,因为我需要多个同一节点上的应用程序(在单独的容器中)通过它们自己的子域访问。
任何帮助或指导都会很棒。
【问题讨论】:
标签: docker windows-10 docker-networking docker-for-windows