Отказано в подключении контейнера Docker

#docker-networking

Вопрос:

Я пытаюсь разобраться в отображении портов докера. Я перехожу по ссылке ниже.

Понимание Сопоставления портов Docker

В двух словах автор делает

     docker run -d -it --name container1 docker.io/httpd
    curl 172.17.0.2:80
 

Используя IP-адрес контейнера, он получает доступ к серверу apache, хотя там нет открытых портов. ОК. Здорово.

В моем случае я выполняю тот же тест, но не могу получить доступ к apache, используя ip-адрес контейнера (172.17.0.4).

 
curl : Unable to connect to the remote server
At line:1 char:1
  curl
  ~~~~
      CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
      FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand


 

Смотрите ниже мой сетевой мост docker для проверки

 [
    {
        "Name": "bridge",
        "Id": "de7bde16cbe8baba8b93eeba3b836711117f209d2d88b98d0eb97ff126b05a7c",
        "Created": "2021-09-18T00:25:11.6548162Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "77400f543d936b1782767cd9f34c7bd1bd9aef529e0d9d0265d881f10bdefded": {
                "Name": "alpine2",
                "EndpointID": "946e6b6e638927e48125077e7d5e061fb26ff08173b3ac43a260296e250197f9",
                "MacAddress": "02:42:ac:11:00:03",
                "IPv4Address": "172.17.0.3/16",
                "IPv6Address": ""
            },
            "ed1f1a0e04b69a202ab2ea0f6eeb82a6da1e8d6f11a4c8810f2d4c4b31507348": {
                "Name": "apache1",
                "EndpointID": "2e54eecf39e937f5502eec37d81c5b392845d7a1586b84e057bea374573f68e6",
                "MacAddress": "02:42:ac:11:00:04",
                "IPv4Address": "172.17.0.4/16",
                "IPv6Address": ""
            },
            "fdbaa86ade63ce839244b89258a07749a8b939cb0071423988da9dbd0e96de90": {
                "Name": "alpine1",
                "EndpointID": "411a62df7e645abef6f563c54e8fb1937929d75b68b638ff0a03012c54f78fba",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]

 

Есть какие-нибудь идеи о том, что происходит не так?

Комментарии:

1. Вы не можете получить доступ к своим контейнерам с помощью 172.17.*.* в Windows с WSL2 из-за того, что хост docker фактически является виртуальной машиной Linux. В общем случае вам следует сопоставить порты, которые вы хотите использовать, с портами на хосте.