Docker 查询容器端口
Docker 容器端口查询是运维和开发中常见的操作,用于验证容器网络配置或调试服务连接。本文将详细介绍如何使用 Docker 命令查询容器端口,包括操作步骤、命令示例及注意事项。
操作步骤
- 确认容器正在运行
- 使用
docker inspect命令获取容器详细信息 - 解析 JSON 输出中的
NetworkSettings.Ports字段
命令示例及解释
以下命令展示如何查询特定容器名称或 ID 的端口映射:
docker inspect -f '{{.NetworkSettings.Ports}}' container_name_or_id
解释:
docker inspect:查询容器信息命令-f:格式化输出,{{.NetworkSettings.Ports}}指定输出端口映射container_name_or_id:替换为实际容器名称或 ID

示例输出(JSON 格式):

{ "80/tcp": [ {"HostPort": "8080", "HostIP": "0.0.0.0", "Protocol": "tcp"} ],
"443/tcp": [ {"HostPort": "8443", "HostIP": "0.0.0.0", "Protocol": "tcp"} ] }
解释输出字段:
- HostPort:宿主机端口
- HostIP:宿主机 IP 地址(默认为 0.0.0.0 表示所有接口)
- Protocol:协议类型(tcp/udp)
实用技巧
- 查询所有容器端口:
docker ps -a --format '{{.Names}}: {{.NetworkSettings.Ports}}' - 仅显示特定端口:
docker inspect -f '{{range $p, $conf := .NetworkSettings.Ports}}{{if eq $p "80/tcp"}}{{printf "%s: %s\n" $p $conf.HostPort}}{{end}}{{end}}' container_name_or_id - 使用
docker port命令(简化版):docker port container_name_or_id 80直接显示宿主机端口
注意事项
- 确保容器处于运行状态,否则端口信息可能不存在
- 端口映射配置在 Dockerfile 中使用
EXPOSE或在运行时使用-p参数指定 - 当
HostIP为空时,默认使用宿主机所有网络接口