Windows docker 容器无法 ping 主机

Wil*_*llM 5 windows networking containers docker

我在 Windows Server 2016 主机上运行 Windows docker 容器,运行默认配置。

使用以下命令运行 docker 容器时:

docker run -it microsoft/windowsservercore powershell

当我运行命令时:

ping <hostIPAddress>

它只是说请求超时。我已经检查过我可以 ping 8.8.8.8 和 google.com 等......甚至同一子网上的其他机器。我唯一无法ping通的是主机。

我已将“--dns”添加到“docker run”命令中,但这仅允许我通过主机名而不是 IP ping 主机。

有没有其他人看到这个问题并有解决方案?

Mar*_*tin 4

我找到了一个解决方法(我不愿意称其为解决方案):

Windows 容器网络驱动程序:创建“透明”网络:

docker network create -d transparent trans
Run Code Online (Sandbox Code Playgroud)

将容器附加到该网络

docker run --network=trans ...
Run Code Online (Sandbox Code Playgroud)

重要提示:请注意,使用此网络,您的容器需要从主机子网获取 IP 地址,并直接暴露给它。

可能相关(这是关于从主机访问容器):

根据https://github.com/Microsoft/Virtualization-Documentation/issues/253#issuecomment-217975932 (JMesser81):

这是我们的 Windows NAT 实现 (WinNAT) 中的一个已知限制,您无法直接从容器 (NAT) 主机访问静态端口映射中的外部端口。