我正在Windows Server 2016主机上运行Windows Docker容器,运行默认配置。
当使用命令运行Docker容器时:
第一个月
当我运行命令时:ping <hostIPAddress>
个
它只是说请求超时。我已经检查过我可以ping 8.8.8.8和google.com等.甚至同一子网中的其他机器。唯一我不能ping的是主机。
我已经在'docker run'命令中添加了'--dns ',但这只允许我通过主机名而不是IP来ping主机。
有没有人看到这个问题,并有一个解决方案?
6条答案
按热度按时间yxyvkwin1#
我找到了一个解决方案(我不愿意称之为解决方案):
Windows Container Network Drivers:创建一个“透明”网络:
字符串
将容器连接到此网络
型
重要提示:请注意,使用此网络,您的容器需要从Host Subnet获取IP地址,并直接暴露给它。
可能相关(这是关于从主机访问容器):
根据https://github.com/Microsoft/Virtualization-Documentation/issues/253#issuecomment-217975932(JMesser81):
这是我们的Windows NAT实现(WinNAT)中的一个已知限制,即您无法直接从容器(NAT)主机访问静态端口Map中的外部端口。
xytpbqjk2#
在我的情况下,我有一个企业管理的McAfee防火墙运行在我的Windows主机上。我不能在防火墙上添加任何额外的规则,但幸运的是有一个规则,允许从172.16.0.0/24访问。
我使用了“docker network create -d transparent transs”,它按照描述的那样工作,但我对分配给容器的主机网络的IP不满意。
我做了以下工作:
zwghvu4y3#
希望这能帮上忙。
在Windows 10上,当在0.0.0.0:5057上托管Linux容器时,我能够使用控制面板>所有控制面板项目>网络连接中找到的vEthernet(默认交换机)NIC的IP地址从Windows主机(powershell)ping我的服务器:
的数据
vmpqdwk34#
我正面临着同样的问题。
我的解决方法是重新启动docker服务,之后它工作正常。我仍然在寻找一个永久的解决方案。
字符串
i2loujxw5#
这对我有用,我希望它对你有用。
目前,您必须安装WSL或WSL 2,并启用虚拟化,才能在Windows上运行Docker。从PowerShell安装WSL时使用以下command。
字符串
显然,您需要在Windows上下载并安装Docker Desktop。安装后,需要从Docker桌面设置启用WSL集成。
x1c 0d1x的数据
配置WSL和Docker Desktop后,您可以创建/使用您的容器。示例:
型
最后,您必须确定WSL的IP,您必须打开您在第一步中安装的Linux发行版,在我们的情况下是Ubuntu,这将打开您的终端,在这里我们将执行:
型
您将识别eth0的ip,例如:172.27.123.123
型
现在您可以从Windows中的CMD ping到此IP。
amrnrhlw6#
我最近在尝试将Xdebug与Docker和WSL 2一起使用时遇到了这个问题。我尝试了从更改VSCode/Xdebug设置,禁用防火墙和各种互联网/网络故障排除步骤的所有方法,但似乎没有任何方法可以解决这个问题,也没有任何原因可以解释为什么我的Docker容器无法访问我的WSL 2主机IP。
最后,在绝望中,我重新安装了Docker并重新安装了它,瞧-Xdebug又神奇地工作了!所以如果所有其他方法都失败了,请尝试重新安装Docker Desktop。