«

Docker查看容器资源占用,stats命令

时间:2026-10-8 08:22     作者:emer     分类: 无


前言

容器跑多了,哪个占CPU、哪个占内存,一眼看出来。本文讲Docker stats命令。

一、基本用法

查看所有运行中的容器

docker stats

输出:

CONTAINER ID   NAME       CPU %   MEM USAGE / LIMIT   MEM %   NET I/O   BLOCK I/O   PIDS
a1b2c3d4e5f6   mysql      2.50%   500MiB / 2GiB       25.0%   1MB/2MB   10MB/5MB    30
f7e8d9c0b1a2   nginx      0.10%   20MiB / 2GiB        1.0%    5MB/3MB   1MB/0B      5

列解释

二、查看单个容器

docker stats 容器名

只看某一个容器。

三、只看一次,不刷新

默认是实时刷新的,按Ctrl+C退出。

只看一次:

docker stats --no-stream

四、自定义格式

只看CPU和内存

docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

JSON格式输出

docker stats --format json --no-stream

五、其他常用命令

查看容器占用磁盘

docker system df

查看单个容器磁盘占用

docker ps -s

看SIZE列,就是容器写的磁盘大小。

查看容器网络IO

docker stats --no-stream

看NET I/O列。

六、常见场景

场景1:哪个容器占CPU高?

docker stats

看CPU %列,高的那个就是。

场景2:哪个容器占内存高?

看MEM USAGE列。

场景3:某个容器网络流量大

看NET I/O列。

七、限制容器资源

跑的时候可以限制CPU和内存:

限制内存512M

docker run -d --memory 512m nginx

限制CPU 0.5核

docker run -d --cpus 0.5 nginx

同时限制

docker run -d \
  --memory 512m \
  --cpus 0.5 \
  nginx

八、常见坑

坑1:stats一直刷新,退不出来

按Ctrl+C退出。

坑2:看不准CPU使用率

Docker stats显示的是CPU使用率百分比,多核的话可能超过100%(比如4核跑满就是400%)。

坑3:内存看的是驻留内存

MEM USAGE是容器实际用的内存,包括缓存。

坑4:容器挂了,stats看不到了

docker stats

只看运行中的容器,停止的看不到。

总结

记住:

  1. docker stats 看所有运行中的容器资源占用
  2. 看CPU、内存、网络、磁盘IO
  3. --no-stream 只看一次
  4. 跑容器时可以限制资源

最常用:

docker stats

遇到问题加QQ23979811 协助处理

标签: Docker 资源占用 stats CPU 内存监控