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
列解释
- CPU %:CPU使用率
- MEM USAGE / LIMIT:内存使用 / 内存限制
- MEM %:内存使用率
- NET I/O:网络收发流量
- BLOCK I/O:磁盘读写
- PIDS:进程数
二、查看单个容器
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
只看运行中的容器,停止的看不到。
总结
记住:
docker stats看所有运行中的容器资源占用- 看CPU、内存、网络、磁盘IO
--no-stream只看一次- 跑容器时可以限制资源
最常用:
docker stats
遇到问题加QQ23979811 协助处理