docker top 命令用于实时查看指定运行中容器的进程(pid 隔离视图),默认显示 pid、user、time、cmd 四列,支持 -eo 自定义字段如 pid,ppid,comm,args;容器须运行,pid 为命名空间内编号,非宿主机 pid。

docker top 命令用于实时查看指定容器内正在运行的进程,它类似宿主机上的 top 命令,但只显示该容器命名空间中的进程视图(即 PID 隔离后的视角),不反映宿主机全局进程状态。
基本用法:查看进程列表
执行以下命令即可列出容器中所有用户态进程:
-
docker top—— 默认显示 PID、USER、TIME、CMD 四列 - 例如:
docker top my-nginx会显示 Nginx 容器中 master 和 worker 进程的简要信息
自定义输出列:按需查看关键字段
可通过 -eo 参数指定要显示的字段,支持与 ps 兼容的格式(如 pid, ppid, comm, args, etime, pcpu 等):
-
docker top my-app -eo pid,ppid,comm,args—— 查看进程 PID、父 PID、命令名和完整启动参数 -
docker top my-app -eo pid,pcpu,pmem,comm—— 监控 CPU/内存占用较高的进程
注意事项与常见问题
使用时需注意以下几点:
- 容器必须处于运行状态,
docker top对已停止容器无效 - 显示的 PID 是容器 PID 命名空间内的编号,与宿主机 PID 不同;如需映射关系,可结合
docker inspect --format='{{.State.Pid}}'查看容器 init 进程在宿主机的 PID - 若提示
Error response from daemon: Container ... is not running,请先确认容器状态:docker ps -a | grep - 非 root 用户执行时,需确保其属于
docker用户组,否则会因权限不足报错
配合其他命令快速诊断
单独使用 docker top 信息有限,建议组合使用:
- 查进程资源详情:
docker exec -it ps auxf或htop(需容器内已安装) - 看资源实时变化:
docker stats提供 CPU、内存、网络、IO 的聚合指标 - 定位异常进程后进入容器调试:
docker exec -it sh或bash










