Docker没有内置DockerStats指令,实际应使用docker stats命令实时监控容器CPU、内存、网络和磁盘I/O等指标;它通过cgroups读取底层资源数据,支持全量监控、指定容器查看、单次快照(--no-stream)及自定义格式输出。

实际上,Docker 并没有内置名为 DockerStats 的指令。你可能指的是 docker stats 命令——这是 Docker 官方提供的、用于实时监控容器 CPU、内存、网络和磁盘 I/O 等性能指标的核心命令。
如何运行 docker stats 实时查看容器状态
在终端中执行以下命令即可启动实时流式监控:
- 监控所有正在运行的容器:
docker stats - 只监控指定容器(例如容器名
web-app或 ID 前几位):docker stats web-app或docker stats c8a2f3 - 禁用实时刷新(只输出一次快照):
docker stats --no-stream web-app - 显示所有字段(包括网络/块设备详细统计):
docker stats --all --no-stream web-app
关键指标解读与常见关注点
输出表格中各列含义如下(以默认格式为例):
- CONTAINER ID / NAME:容器唯一标识
- CPU %:当前 CPU 使用率(基于所有可用核心的百分比)
- MEM USAGE / LIMIT:已用内存 / 容器内存上限;若未设 limit,则显示主机总内存
-
MEM %:内存使用率(仅当设置了
--memory限制时才有明确参考价值) -
NET I/O:网络入站 + 出站数据量(如
1.2MB / 450KB) -
BLOCK I/O:存储读写量(如
24MB / 0B) - PIDs:当前容器内进程数(反映轻量级负载或潜在 fork 爆炸风险)
实用技巧与注意事项
让 docker stats 更好地服务于日常运维:
- 配合
--format自定义输出(支持 Go 模板语法),例如只看 CPU 和内存:docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemPerc}}" - 添加
--no-stream后可结合watch实现自定义刷新间隔(如每 2 秒刷新):watch -n 2 'docker stats --no-stream --format "table {{.Name}}\t{{.MemPerc}}\t{{.CPUPerc}}"' - 注意:容器必须处于
running状态才能被统计;已退出容器不会出现在默认列表中 - 内存指标受 cgroup v1/v2 和内核版本影响,某些旧环境可能不显示精确 LIMIT,建议升级 Docker 和内核以获得更准确数据
替代方案:需要长期记录或可视化怎么办
docker stats 是轻量级实时观察工具,不适合历史分析或告警。如需持续采集和图表展示,可考虑:
- cAdvisor(Google 开源):专为容器设计的监控代理,常与 Prometheus + Grafana 搭配使用
- docker-compose + statsd / Prometheus Exporter:在应用层集成指标上报
- 第三方平台:Datadog、New Relic、Sysdig 等提供开箱即用的容器监控仪表盘



















