Docker 自带命令可快速监控系统资源:docker stats 查实时占用,docker top 定位高耗进程,docker system df 分析磁盘占用,docker inspect 核查配置限制。
直接用 docker 自带命令就能快速掌握系统资源使用情况,不需要额外装工具。重点是搞清几个核心命令的用途和关键字段含义。
docker stats:看实时资源占用
这是最常用、最直接的监控命令,适合日常巡检和快速排查。
- 查看所有运行中容器:
docker stats(持续刷新,按 Ctrl+C 停止) - 只看一次快照:
docker stats --no-stream - 指定某个容器:
docker stats nginx-app或docker stats abc123
输出里重点关注:
- CPU %:数值超 100% 表示用了多核;长期高于 80% 要留意是否过载
- MEM USAGE / LIMIT:如果没设内存限制,这里显示的是宿主机总内存;接近 LIMIT 时,OOM 风险上升
- NET I/O:收发总量,突增可能意味着流量异常或攻击
- BLOCK I/O:磁盘读写量,持续高值说明 I/O 压力大
- PIDS:进程数突然飙升,常是程序卡死或 fork 爆炸的信号
docker top:查容器内具体进程
当 stats 显示 CPU 或内存异常,就用它定位是哪个进程在“吃”资源。
- 基础用法:
docker top mysql-container - 按 CPU 排序看大户:
docker top mysql-container -o pid,%cpu,cmd --sort=%cpu - 查内存大户:
docker top mysql-container -o pid,%mem,cmd --sort=%mem
输出中 %cpu 和 %mem 是当前进程占容器整体的比例,结合 stats 数据能快速缩小问题范围。
docker system df:查 Docker 自身磁盘占用
容器跑久了,镜像、日志、缓存会悄悄占满硬盘,这个命令帮你一眼看清“谁在吃空间”。
- 概览:
docker system df - 详细清单:
docker system df -v(列出每个镜像/容器/卷的具体大小)
重点关注 RECLAIMABLE 列,比如 “Images 460.6MB (5%)”,说明删掉不用的镜像能腾出近半 GB 空间。
docker inspect:查容器配置与实时状态
当怀疑资源限制不合理或想确认实际运行参数时,用它看底层设置。
- 查内存限制:
docker inspect my-app | grep -A 5 Memory - 查 CPU 配额:
docker inspect my-app | grep -A 3 Cpu - 查网络模式和端口映射:
docker inspect my-app | grep -A 10 NetworkSettings
注意:inspect 输出的是静态配置,不是实时指标;但它能告诉你容器“理论上”该被限制成什么样,和 stats 的实际表现对比,就能判断是否存在配置偏差或资源争抢。
这几个命令组合起来,基本覆盖了从宏观到微观的资源监控需求。不需要部署复杂系统,一条命令敲下去,关键信息就出来了。


















