首页/云/云与容器速查/docker compose ps 查看项目状态
容器与 Docker106 条

docker compose ps 查看项目状态

列出本项目所有服务容器的状态、端口与健康:--all 含已停止容器,--format json 便于脚本消费;排查『哪个服务没起来』的第一步。

云与容器速查云更新于 2026-10-13

docker compose ps 是什么

docker compose ps 列出当前项目下各服务的容器状态,包括运行状态、端口映射与健康状态。它按项目名筛选,项目名默认由所在目录名推导,因此不会混入其他目录启动的同名服务。加上 --all 可以看到已退出的容器及其退出码,加上 --format json 则输出结构化数据供脚本消费,是排查『哪个服务没起来』的第一步。

基本信息

默认行为只列出运行中的服务容器
--all / -a包含已退出容器,可以直接看到退出码
--status按状态过滤:running、exited、paused 等
--format json结构化输出,供 CI 与脚本判断
项目范围只显示当前项目的容器,项目名按目录推导

典型使用场景

  • 启动后确认所有服务是否都成功拉起,还是有个别服务没起来
  • 排查某个服务没起来的原因:用 --all 看到退出码,再去看该服务日志
  • CI 流水线用 json 输出判断部署是否成功,失败时自动输出容器状态
  • 核对端口映射与预期是否一致,避免发布到错的端口
  • 结合健康状态确认服务是否真正就绪,而不只是进程存在

使用示例

使用示例
docker compose ps
docker compose ps --all
docker compose ps --format json | head -40
docker compose ps web --status running   # 只看指定服务的运行状态
# 部署脚本里判断是否有服务未运行:先取 json 再按状态过滤

状态与含义

状态含义下一步
running容器正在运行结合健康状态判断是否已就绪
exited (0)进程正常结束确认是否本身就是任务型服务
exited (非 0)异常退出查看该服务日志定位报错
restarting处于重启循环按容器反复重启的路径排查
created已创建但未启动确认依赖条件是否满足
compose ps 只显示当前项目的容器:项目名按目录推导,因此同一台机器上不同目录启动的同名服务不会互相干扰,各自的端口与状态互不混淆。
在错误的目录执行会显示为空,容易被误判为『服务全挂了』:执行前先确认当前目录与项目名,或者用 -p 显式指定项目名称。

易错点

  • 只看默认输出不看 --all:已退出的容器被隐藏起来,误判为服务仍在正常运行
  • 在错误目录执行导致输出为空,把目录问题误判成服务故障
  • 把状态为 running 当成服务可用:容器在跑但健康检查为不健康,用户侧已经在报错
  • 脚本解析默认表格输出:列宽随内容变化,解析结果不稳定,应改用 json 格式

数据来源与参考

  • Docker Docs:docker compose ps

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌