跳到主要内容

使用docker port命令映射容器的端口时系统报错Error∶NO public port '80'publis hed for …?

参考答案:

docker port 命令是用来查看容器内部端口的映射到宿主机上的端口,而不是用来映射端口的。如果您尝试使用 docker port 命令来映射端口,那么您会遇到错误,因为这不是该命令的用途。

实际上,端口映射是在运行容器时通过 docker run 命令的 -p--publish 标志来完成的。例如,如果您想将容器的 80 端口映射到宿主机的 8080 端口,您可以使用以下命令:

docker run -p 8080:80 <image_name>

这里,<image_name> 是您想要运行的 Docker 镜像的名称。

如果您已经运行了一个容器,并且想要查看该容器的端口映射情况,您可以使用 docker port 命令,像这样:

docker port <container_id_or_name> 80

这条命令将显示容器内部 80 端口映射到宿主机上的哪个端口(如果映射存在的话)。

如果您收到了错误 "Error: NO public port '80' published for ...",这意味着您尝试查看的容器内部端口 80 没有被映射到宿主机的任何端口上。可能的原因是:

  1. 您没有在运行容器时使用 -p--publish 标志来映射端口 80。
  2. 您查看的容器不是您预期的容器,或者容器内部没有运行监听在 80 端口的服务。

请确保您正确运行了容器,并且确实映射了所需的端口。如果您想修改已经运行的容器的端口映射,您需要停止并删除该容器,然后使用正确的端口映射选项重新运行它。注意,一旦容器开始运行,就不能更改其端口映射;您必须重新创建容器。