使用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 没有被映射到宿主机的任何端口上。可能的原因是:
- 您没有在运行容器时使用
-p
或--publish
标志来映射端口 80。 - 您查看的容器不是您预期的容器,或者容器内部没有运行监听在 80 端口的服务。
请确保您正确运行了容器,并且确实映射了所需的端口。如果您想修改已经运行的容器的端口映射,您需要停止并删除该容器,然后使用正确的端口映射选项重新运行它。注意,一旦容器开始运行,就不能更改其端口映射;您必须重新创建容器。