docker port命令用于查看已运行或已停止容器的端口映射关系,需容器启动时使用-p或--publish参数映射端口;支持查看全部映射(如docker port my-nginx)或指定端口协议(如docker port my-nginx 80/tcp),输出格式为“80/tcp→0.0.0.0:8080”,不支持--expose声明的端口。
docker port 命令用于查看容器中端口映射到宿主机的具体地址和端口,适用于已运行或已停止的容器(只要端口映射是在 docker run 时通过 -p 或 --publish 指定的)。
基本用法:查看单个容器的端口映射
语法为:docker port
例如,启动一个 Nginx 容器并映射 8080→80:
docker run -d -p 8080:80 --name my-nginx nginx
然后执行:
docker port my-nginx
输出类似:
80/tcp -> 0.0.0.0:8080
表示容器内 80/tcp 端口映射到了宿主机所有 IP 的 8080 端口。
查看指定容器内某个端口的映射
如果容器暴露了多个端口,可只查某一个:
-
docker port my-nginx 80/tcp→ 显示该端口映射目标 -
docker port my-nginx 443/tcp→ 若未映射,无输出
注意:协议(/tcp 或 /udp)必须写全,否则命令会报错或返回空。
常见问题与注意事项
- 仅对使用
-p或--publish显式映射的端口有效;--expose只是声明暴露,不产生映射,docker port查不到 - 容器必须存在(可以是已停止状态),但不能是刚创建尚未启动、且没做端口映射的容器
- 若映射时用了
-p 127.0.0.1:8080:80,输出会是80/tcp -> 127.0.0.1:8080,说明只绑定本地回环地址 - 使用
docker port -h可查看帮助,当前版本不支持批量查多个容器
配合其他命令快速定位
想边看容器列表边查端口,可以组合使用:
-
docker ps --format "table {{.Names}}\t{{.Ports}}"→ 直接在列表里显示端口列(较简略) -
docker ps -q | xargs -r docker port→ 查所有运行中容器的端口映射(部分环境需逐个处理) - 结合
grep过滤:docker port my-nginx | grep 8080
不复杂但容易忽略细节,关键是确认映射方式和协议写法。











