Docker for windows:实际容器IP与配置中显示的不同

Docker for windows:实际容器IP与配置中显示的不同,docker,hyper-v,docker-for-windows,Docker,Hyper V,Docker For Windows,我刚开始和docker玩,我面临着一个非常奇怪的问题。安装后,我拉取了一个IIS nanoserver映像,并启动了它: λ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES beabe561852f d4 "C:

我刚开始和docker玩,我面临着一个非常奇怪的问题。安装后,我拉取了一个IIS nanoserver映像,并启动了它:

λ  docker ps
CONTAINER ID        IMAGE               COMMAND                   CREATED             STATUS              PORTS                NAMES
beabe561852f        d4                  "C:\\ServiceMonitor.e…"   3 minutes ago       Up 3 minutes        0.0.0.0:81->80/tcp   nano-server
在那之后,我试图通过网络访问该网站。由于它不起作用,我使用以下命令检查了IP:

λ  docker inspect -f "{{json .NetworkSettings.Networks}}" b
{"nat":{"IPAMConfig":null,"Links":null,"Aliases":null,"NetworkID":"11117ac2f84721d1ca93c719192dd4d2aa5f9e6d23e7b3077dfd8ffb63aaf2e2","EndpointID":"68984bc164035e4035af1878673dda69e913dde19d641943cb68f7121aa9dae6","Gateway":"172.23.160.1","IPAddress":"172.23.174.235","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"00:15:5d:33:81:0a","DriverOpts":null}}
ping也不起作用:

λ  ping 172.23.174.235

Pinging 172.23.174.235 with 32 bytes of data:
Reply from 10.200.2.222: Destination net unreachable.
Reply from 10.200.2.222: Destination net unreachable.
Reply from 10.200.2.222: Destination net unreachable.
Reply from 10.200.2.222: Destination net unreachable.

Ping statistics for 172.23.174.235:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
因此,我尝试在容器中运行powershell来检查IP:

PS C:\> ipconfig

Windows IP Configuration


Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . : mshome.net
   Link-local IPv6 Address . . . . . : fe80::14e3:fd95:19a:c89b%4
   IPv4 Address. . . . . . . . . . . : 192.168.238.55
   Subnet Mask . . . . . . . . . . . : 255.255.255.240
   Default Gateway . . . . . . . . . : 172.23.160.1
                                       192.168.238.49
PS C:\>
正如您所见,容器的“真实”IP与docker认为它正在使用的IP完全不同

我已经尝试过将容器从网络上断开并重新连接,但结果总是一样的

关于这里发生的事有什么线索吗?更重要的是,关于如何解决这个问题有什么建议吗


谢谢

在本例中,我使用docker network prune命令删除了所有未使用的网络。删除默认开关后,一切都开始正常工作。我不确定为什么需要这样做,但可能是交换机配置有问题