我在另一个节点上有一个Docker Windows容器和Linux容器。
在Windows上,我在此处提到的防火墙中打开了端口:https://docs.docker.com/network/overlay/#operations-for-all-overlay-networks
(8条规则-4代表输入,4代表输出),但是即使如此,当我连接到Windows主机上的容器并尝试ping Linux容器时,在执行(在容器内部)之后,我仍然收到“未知主机”的信息:
Clear-DnsClientCache
一切开始起作用。
我还删除了整个堆栈,并尝试禁用防火墙和意外操作-现在一切正常,而无需清除DNS缓存。
我再次移除堆栈并启用了防火墙-我必须再次连接到容器并清除缓存以使其正常工作。
防火墙设置似乎有问题,但是怎么办?我没有找到应该打开的其他端口
最佳答案
看起来我刚刚找到了答案,但我并不完全理解。我尝试先打开端口0-9999,然后打开0-5000,然后打开0-2500,等等,发现我需要打开端口1888(tcp,in)以使docker overlay网络立即工作(我的意思是能够解决立即为DNS名称提供服务),但我在互联网上找不到任何相关信息。我不知道为什么。我只有那个问题吗?也许这不是正确的解决方案?有人可以告诉我为什么需要这个端口,为什么即使在1888被阻止的情况下,Clear-DnsClientCache仍可以工作?
编辑:
看来此解决方案是错误的。现在它只工作一次,然后不工作,然后再一次工作。我可以删除并重新创建整个堆栈,它只是随机工作。
关于docker - Docker Windows容器DNS缓存和防火墙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54093070/