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