docker-compose ps 是最直接、最轻量的容器状态复核工具,仅快照式呈现当前项目所有服务容器的名称、命令、服务归属、状态及端口映射,支持过滤、静默输出和全量查看,适用于开发调试、ci/cd检查与上线巡检。
docker-compose ps 是最直接、最轻量的容器状态复核工具,不启动新容器、不读取日志、不修改状态,只做“快照式呈现”,特别适合在开发调试、ci/cd 检查、上线前巡检等场景中快速确认多容器矩阵是否按预期就位。
聚焦服务维度看运行状态
默认执行 docker compose ps 会列出当前项目所有服务容器的名称、启动命令、所属服务、当前状态(如 Up 或 Exited)和端口映射。它自动按 docker-compose.yml 中定义的服务组织输出,天然适配“服务即单元”的矩阵思维。
- 若某服务显示
Up但端口为空,说明未正确暴露或监听失败 - 若状态为
Up About X seconds ago,表示刚启动,可结合docker compose logs -t service_name追查初始化日志 - 名称格式统一为
项目名_服务名_序号(如myapp-web-1),一眼识别归属关系
用过滤选项直击关键状态
不用肉眼扫屏,靠 --filter 精准定位异常:
- 查看所有非运行态容器:
docker compose ps --filter "status=exited" --filter "status=created" - 筛出健康但未就绪的服务(比如依赖未启动):
docker compose ps --filter "status=up" | grep -v "0.0.0.0:"(检查端口是否实际绑定) - 验证指定服务是否存活:
docker compose ps web api db(支持多服务名空格分隔)
配合静默模式做自动化判断-q 和 --services 可用于脚本化校验:
- 获取全部运行中容器 ID 数量:
docker compose ps -q --filter "status=running" | wc -l - 检查服务定义与实际容器是否一致:
diff - CI 流水线中加入断言:
[ $(docker compose ps --filter "status=running" | wc -l) -eq 3 ] || exit 1
补充一招:加 -a 看全貌防遗漏
默认 ps 只显示运行中容器,容易忽略已退出但影响链路的“幽灵容器”。加 -a 参数一次看清全部:
-
docker compose ps -a能暴露Exited (1)的数据库迁移容器、一次性任务容器或因配置错误崩溃的 sidecar - 结合
--format "{{.Name}}\t{{.Status}}\t{{.Ports}}"可导出结构化表格,便于人工复查或导入监控看板
不复杂但容易忽略











