最直接有效的方式是使用 docker port 命令查看容器端口映射,如 80/tcp → 0.0.0.0:8080;docker ps 显示 ports 列简要映射;docker inspect 提供完整 portbindings 配置;expose 仅声明不映射,需 -p 或 -p 才生效。
最直接有效的方式是使用 docker port 命令查看容器暴露的端口映射关系。
快速查看指定容器的端口映射
运行以下命令,替换 CONTAINER_NAME_OR_ID 为你的容器名或ID:
docker port CONTAINER_NAME_OR_ID
输出示例:
80/tcp -> 0.0.0.0:8080<br>443/tcp -> 0.0.0.0:8443
表示容器内 80 和 443 端口分别映射到宿主机的 8080 和 8443 端口,且监听所有网络接口(0.0.0.0)。
在 docker ps 中一并查看端口信息
启动容器时若已配置映射,docker ps 的 PORTS 列会显示简要映射:
docker ps
输出中类似这一行:
0.0.0.0:8080->80/tcp, 0.0.0.0:8443->443/tcp
注意:未做端口映射的容器,该列可能为空或只显示容器内部开放但未暴露的端口(如 80/tcp 单独出现)。
查看详细映射配置(含绑定IP和协议)
用 docker inspect 可查到完整、精确的映射规则,包括是否绑定了特定IP、UDP/TCP协议等:
- 运行:
docker inspect CONTAINER_NAME_OR_ID | grep -A 10 "PortBindings" - 或更清晰地提取:
docker inspect -f '{{.HostConfig.PortBindings}}' CONTAINER_NAME_OR_ID
返回结果形如:map[80/tcp:[{0.0.0.0 8080}]],说明 TCP 的 80 端口映射到了宿主机 0.0.0.0:8080。
补充:确认容器是否真的暴露了端口
有些镜像通过 EXPOSE 声明端口,但这只是文档性质,不自动触发映射。必须配合 -p 或 -P 才生效:
-
-p 8080:80→ 显式绑定固定端口 -
-p 80→ 让 Docker 随机分配宿主机端口(可用docker port查) -
-P→ 将所有EXPOSE端口随机映射(需镜像有EXPOSE指令)











