docker - Docker Windows容器DNS缓存和防火墙

标签 docker docker-swarm windows-firewall

我在另一个节点上有一个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/

相关文章:

php - 在 php-fpm docker 镜像上更改为 pm = static

Docker Swarm 用于管理 headless (headless)容器,并使它们保持更新(或瞭望塔?)

postgresql - 从 postgres docker 容器中的环境变量中删除敏感信息

java - Windows 8 上的 JWrapper EXE 需要 "Run as Administrator..."

java - 强制AWS库从docker集群内的环境中获取区域

python - 如何安装CVXPY/SCS与GPU一起使用?

r - 更快地构建Docker镜像

docker - docker swarm,服务任务未部署到新创建的swarm worker节点

vb.net - 暴露 WCF 服务无法通过 windows 防火墙检索对象

c# - 读取防火墙设置以查看在 Windows 上使用 c# 的应用程序允许哪些配置文件