compose top 看什么
docker compose top 展示项目内服务容器中的进程列表,包含进程号、命令等字段,用来确认应用是否真正拉起、有没有多余进程。它相当于对项目里各容器批量做一次进程查看,适合发布后快速核对运行状态。
基本信息
| 语法 | docker compose top [服务名…] |
|---|---|
| 输出字段 | UID、PID、PPID、CPU、启动时间、TTY、累计时间、命令 |
| 对照方式 | docker compose exec <服务> ps aux |
| 适用平台 | Compose V2 |
| 判读要点 | 容器主进程退出后容器即结束 |
典型使用场景
- 确认服务是否真正把应用进程拉起来
- 排查应用以后台方式启动导致主进程秒退
- 核对容器内是否存在多余进程或异常守护进程
- 发布后快速确认进程状态符合预期
- 与容器内 ps 对照,判断是看错视角还是确有问题
查看进程
查看进程
docker compose top # 查看项目内所有服务的进程
docker compose top web # 只看某个服务
docker compose exec web ps aux # 容器内视角的对照
docker compose ps # 服务与容器的对应关系字段读法
| 字段 | 含义 | 异常线索 |
|---|---|---|
| PID | 容器内进程号 | 缺失说明应用未拉起 |
| PPID | 父进程号 | 异常父进程提示启动方式有问题 |
| 命令列 | 命令与参数 | 与预期不一致要核对入口 |
| CPU 与累计时间 | 占用与累计 CPU 时间 | 长期为零说明进程未在推进 |
容器的主进程退出后容器即结束,top 看到空列表通常意味着服务已经不在运行。
应用以守护进程方式后台化后主进程会立刻退出,表现就是容器起不来,需要让进程前台运行。
服务较多时输出会按服务分组,先指定服务名缩小范围,判读更快。
与容器内 ps 对照能区分两种可能:是进程真的没起来,还是命令执行到了另一个容器里。
字段解读与宿主 ps 类似,但 PID 是容器内命名空间的编号,不要与宿主进程号混在一起看。
服务只声明了依赖但尚未启动时,top 输出里不会出现该服务,核对进程前先用 ps 子命令确认各服务的容器状态。