无法从容器的默认端口以外的任何端口(使用发布)访问docker容器应用程序

无法从容器的默认端口以外的任何端口(使用发布)访问docker容器应用程序,docker,nginx,docker-compose,containers,Docker,Nginx,Docker Compose,Containers,我在学Docker。我已经安装了Docker for Windows。我已经为nginx创建了容器,正在尝试使用已发布的端口访问该容器,但无法访问该容器。但是,如果使用端口80,则可以访问应用程序 http://localhost:80 工作并向我显示默认的nginx页面 http://localhost:5000 不起作用,并打印以下内容: This page isn’t workinglocalhost didn’t send any data. ERR_EMPTY_RESPONSE 此

我在学Docker。我已经安装了Docker for Windows。我已经为nginx创建了容器,正在尝试使用已发布的端口访问该容器,但无法访问该容器。但是,如果使用端口80,则可以访问应用程序

http://localhost:80 工作并向我显示默认的nginx页面 http://localhost:5000 不起作用,并打印以下内容:

This page isn’t workinglocalhost didn’t send any data.
ERR_EMPTY_RESPONSE
此外,浏览器(Chrome)开发者控制台中的“网络”选项卡不会显示任何响应或错误

我的操作系统:Windows 10 Pro

Client: Docker Engine - Community
 Cloud integration: 1.0.7
 Version:           20.10.2
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        2291f61
 Built:             Mon Dec 28 16:14:16 2020
 OS/Arch:           windows/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.2
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       8891c58
  Built:            Mon Dec 28 16:15:28 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.3
  GitCommit:        269548fa27e0089a8b8278fc4fc781d7f65a939b
 runc:
  Version:          1.0.0-rc92
  GitCommit:        ff819c7e9184c13b7c2607fe6c30ae19403a7aff
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
用于创建容器的命令:
docker容器运行-d——名称nginx——发布5000:5000 nginx

docker容器ls输出

CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                            NAMES
f59516a3e4f7   nginx                    "/docker-entrypoint.…"   4 hours ago      Up 4 hours      80/tcp, 0.0.0.0:5000->5000/tcp   nginx
docker容器检查命令:

[
    {
        "Id": "f59516a3e4f75c61b92479f965043e90a711fb193e443b734e05bcd42ad4d0ba",
        "Created": "2021-02-08T07:19:20.2360384Z",
        "Path": "/docker-entrypoint.sh",
        "Args": [
            "nginx",
            "-g",
            "daemon off;"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 983,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-02-08T07:19:24.5867104Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:f6d0b4767a6c466c178bf718f99bea0d3742b26679081e52dbf8e0c7c4c42d74",
        "ResolvConfPath": "/var/lib/docker/containers/f59516a3e4f75c61b92479f965043e90a711fb193e443b734e05bcd42ad4d0ba/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/f59516a3e4f75c61b92479f965043e90a711fb193e443b734e05bcd42ad4d0ba/hostname",
        "HostsPath": "/var/lib/docker/containers/f59516a3e4f75c61b92479f965043e90a711fb193e443b734e05bcd42ad4d0ba/hosts",
        "LogPath": "/var/lib/docker/containers/f59516a3e4f75c61b92479f965043e90a711fb193e443b734e05bcd42ad4d0ba/f59516a3e4f75c61b92479f965043e90a711fb193e443b734e05bcd42ad4d0ba-json.log",
        "Name": "/nginx",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {
                "5000/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "5000"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                49,
                190
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/a67b581e2118bfaeb9a069c638ff42f71acf47fd265b01354e220c483ff9cf71-init/diff:/var/lib/docker/overlay2/61d9567cb18bc9696a1c664ebf3825a418a9aff6c5aa2c0fabc953123431fa34/diff:/var/lib/docker/overlay2/2be9c39bd291d94c4c1d5988983962b9962c9b20cf1fa234ab03207cdad4fff8/diff:/var/lib/docker/overlay2/24572164f0e4eee1986a390325efa605d0479adf33dd98fee68664c36e6367c7/diff:/var/lib/docker/overlay2/874dc0dce371b28125310174ec54ae62cfce0d19966182d80ad614f160107c7a/diff:/var/lib/docker/overlay2/65ff43934235a5e51dd723ee580dfb1aaa83bf78f20e841593e75cb24018b3da/diff",
                "MergedDir": "/var/lib/docker/overlay2/a67b581e2118bfaeb9a069c638ff42f71acf47fd265b01354e220c483ff9cf71/merged",
                "UpperDir": "/var/lib/docker/overlay2/a67b581e2118bfaeb9a069c638ff42f71acf47fd265b01354e220c483ff9cf71/diff",
                "WorkDir": "/var/lib/docker/overlay2/a67b581e2118bfaeb9a069c638ff42f71acf47fd265b01354e220c483ff9cf71/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "f59516a3e4f7",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "5000/tcp": {},
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.19.6",
                "NJS_VERSION=0.5.0",
                "PKG_RELEASE=1~buster"
            ],
            "Cmd": [
                "nginx",
                "-g",
                "daemon off;"
            ],
            "Image": "nginx",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": [
                "/docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {
                "maintainer": "NGINX Docker Maintainers \u003cdocker-maint@nginx.com\u003e"
            },
            "StopSignal": "SIGQUIT"
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "626e30b7e55d09190c8d1856ee22a5631cccd77b11dfc7833f790d657ff34a49",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "5000/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "5000"
                    }
                ],
                "80/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/626e30b7e55d",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "e5b1acbe55d056354dcd377ea42c33a4acc37229af589da9fbf0ba70e812b3ea",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.3",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:03",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "eab20a894f1a3dfef855ac020cb83389f7e1b2b77b0ba25a3268db90c55a5a30",
                    "EndpointID": "e5b1acbe55d056354dcd377ea42c33a4acc37229af589da9fbf0ba70e812b3ea",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:03",
                    "DriverOpts": null
                }
            }
        }
    }
]
在windows中输出nestat-ao以查看端口是否不可用

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:80             DESKTOP-FUFQTFP:0      LISTENING       9276
  TCP    0.0.0.0:135            DESKTOP-FUFQTFP:0      LISTENING       616
  TCP    0.0.0.0:445            DESKTOP-FUFQTFP:0      LISTENING       4
  TCP    0.0.0.0:2179           DESKTOP-FUFQTFP:0      LISTENING       2196
  TCP    0.0.0.0:3000           DESKTOP-FUFQTFP:0      LISTENING       9276
  TCP    0.0.0.0:4000           DESKTOP-FUFQTFP:0      LISTENING       9276
  TCP    0.0.0.0:5000           DESKTOP-FUFQTFP:0      LISTENING       9276
DESKTOP-FUFQTFP是我可以在Hyper V-Manager中看到的东西

我已经阅读了几篇文章,并尝试了一些命令,如
docker container run-d--name nginx-p 0.0.0.0:5000:5000 nginx
但它不起作用 我也尝试过同样的方法来处理httpd和docker/getting start的图像,但都有相同的问题。
我不知道。

在您的示例中,命令的问题是您正在将本地端口5000映射到容器中的端口5000(没有侦听它)

这是:
docker容器运行-d——名称nginx——发布5000:80 nginx


此处,主机上的端口5000映射(绑定)到容器中的端口80。

您的命令和我的命令之间的唯一区别是在我的情况下使用容器端口5000,在您的情况下使用80。您是否认为这可能是因为集装箱港口5000可能不可用?但是,在这种情况下,码头工人不会启动集装箱本身,不是吗?我也尝试了您的命令,结果相同,无法访问。默认NGINX容器未公开
:5000
。它需要它做什么?这是我的建议。请参见第111行,默认情况下仅显示
:80
——如您所料。answer中的命令已测试并正常工作。那么,您的意思是run命令中提到的容器端口应该与前面提到的公开映像的DockerFile基本相同?我已经清除了所有的图像,并尝试了它的工作!!谢谢!:)容器中的服务可以绑定(侦听)不同的端口,也可以同时绑定(侦听)多个端口。您可以使用
-p:
动态地公开它们(可以重复多次),而不必映射到Dockerfile已经公开的内容。但是在默认NGINX容器的情况下,当您启动它时,里面没有任何东西在监听
:5000
,您需要映射到
:80
,以获得欢迎页面。