查最终落到宿主的端口
compose 文件里写的映射未必就是最终结果:可能使用了随机端口,也可能被合并规则或环境变量改写。docker compose port 用来查询某个服务的端口在宿主上实际绑定的地址与端口,输出形如 0.0.0.0:8080。排查端口冲突、确认随机端口号、核对是否只绑定了回环地址,都用它拿结论,而不是回到编排文件里猜。
基本信息
| 语法 | docker compose port 服务 容器端口[/协议] |
|---|---|
| 输出格式 | 宿主地址:宿主端口 |
| 输出为空 | 该端口没有发布到宿主机 |
| 前提 | 项目定位正确,服务容器已创建 |
典型使用场景
- 随机端口确认:编排文件里写 0 或短语法,启动后查真实端口
- 端口冲突排查:确认最终绑定结果与预期是否一致
- 外部不改通排查:看是不是只绑定到回环地址
- 联调取端口:测试脚本启动后先查端口再拼访问地址
- 发布核对:上线后确认映射与设计文档一致
查询与核对
查询与核对
# 查服务 80 端口映射到宿主的地址与端口
docker compose port web 80
# 显式指定协议
docker compose port web 80/tcp
# 随机端口场景:先启动再查询
docker compose up -d web && docker compose port web 80
# 与最终配置对照,确认没有被合并规则改写
docker compose config | grep -A5 ports输出读法
| 输出示例 | 含义 | 注意 |
|---|---|---|
| 0.0.0.0:8080 | 绑定全部地址的 8080 | 外部可访问 |
| 127.0.0.1:8080 | 只绑定本机回环 | 外部访问不通,属设计行为 |
| [::]:8080 | 以 IPv6 形式绑定 | 双栈环境两侧都要核对 |
| 无输出 | 该端口没有发布 | 检查编排文件与合并后的最终配置 |
端口定义分散在多个文件时,以 compose config 展开后的最终结果为准,查询端口前先确认最终配置更省时间。
服务还没启动时查询结果不可靠,先 up 或 start 再查。
一次只查一个端口,需要确认多项映射时把服务与端口的组合逐个传入,输出没有表头,脚本里要按固定格式解析。