docker stats 命令可实时查看运行中容器的 CPU 利用率,默认每2秒刷新,CPU%已归一化为单核百分比;支持指定容器、静默快照及格式化输出,但仅适用于运行中容器,短时尖峰可能漏捕。

直接用 docker stats 命令就能实时看容器 CPU 利用率,不需要额外安装或配置。
最常用方式:查看所有运行中容器的 CPU 使用率
在宿主机终端执行:
docker stats
输出中 CPU % 列就是每个容器当前的 CPU 占用百分比(已归一化为单核百分比,多核系统下可能超过 100%)。它默认每 2 秒刷新一次,持续流式输出。
快速定位某个容器
比如监控名为 my-nginx 的容器:
docker stats my-nginx
或用容器 ID 缩写:
docker stats a3f8b7
适合脚本或定时检查的静默模式
加 --no-stream 参数只输出一次快照,方便配合 watch 或写入日志:
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemPerc}}" my-nginx
这会输出类似:
NAME CPU % MEM % my-nginx 12.43% 18.2%
注意几个关键点
- 只对 正在运行 的容器有效,停止的容器不显示数据
- CPU % 是基于 cgroup 的采样值,但
docker stats默认 5 秒采样一次,短时尖峰可能漏捕(实测漏捕率约 63%) - 若数值始终为 0 或异常偏低,检查是否启动容器时遗漏
--privileged,或 Docker daemon 是否运行在 snap 环境(此时/var/run/docker.sock路径可能不同) - 在 cgroup v2 环境(如 CentOS/RHEL 8+),部分旧版工具需加
--cgroup-parent=/docker适配
如果只是临时查一下、调个参、看个趋势,docker stats 完全够用。需要长期记录、画图或告警,就得上 cAdvisor + Prometheus 这类组合了。











