我不确定这是当前版本的Windows Docker网络存在问题,还是我的配置和误解不佳,但我有以下设置:
当我创建所有3个容器时,一切都很好,我可以使用它们的名称附加和ping所有其他容器,没有任何问题。应用程序运行并且可以按照我的希望相互通信。
但是,当我重新启动计算机并再次启动所有容器时,他们无法再使用其名称进行ping /通信(使用IP地址就可以了)。
我在默认的NAT网络上试过这个,并尝试用我自己的自定义NAT网络替换NAT网络。
要解决此问题,我必须为每个容器运行force network disconnect命令:
docker network disconnect nat <containername> --force
然后我必须在启动它们之前将每个容器重新连接到网络。然后,所有容器都可以使用其名称和IP地址进行ping /通信。
仅供参考,这是一个开发环境,但我希望在使用Windows Server 2016 VM的Azure中做类似的事情,尽管我不太清楚现场制作的最佳网络配置是什么,因为我需要在通过自己的子域访问的同一节点上有多个应用程序(在单独的容器中)。
任何帮助或指导都会很棒。
答案 0 :(得分:0)
我不确定,部分是因为这个问题是在我碰到的任何其他例子之前几个月被问到的,但这听起来与https://github.com/docker/for-win/issues/1038中描述的问题非常相似。
基本上,Windows 10的1709更新似乎引入了一个问题,导致Hyper-V网络无法以其应有的方式运行。
似乎有两种常见的解决此问题的方法:关闭控制面板中的“快速启动”=&gt;电源选项=&gt;系统设置,或在启动后重新启动Docker for Windows和任何容器。我还以为我在Microsoft博客文章中看到了一些内容,表明基础问题现已得到解决,并将包含在Windows 10的更新中,但是我无法再找到问题所在的信息或特定版本号。 (理论上)解决了。这可能是延迟1803“Spring Creators Update”的发布。