运行 docker system df 可快速查看镜像、容器、卷、构建缓存的磁盘占用,重点关注 size(实际占用)、reclaimable(可安全清理量)和 total(资源总数)三列;加 -v 参数展开明细,再用 sudo du -sh /var/lib/docker 交叉验证真实磁盘使用。
直接运行 docker system df 就能快速看到容器生态(镜像、容器、卷、构建缓存)占用的总磁盘空间,它按资源类型分组汇总,一目了然。
看懂三栏核心指标
输出表格中重点关注这三列:
- SIZE:该类资源当前实际占用的磁盘总量(如 Images 占 2.4GB)
- RECLAIMABLE:可安全清理的空间大小及占比(如 1.1GB,占 46%)
- TOTAL:资源总数,结合 ACTIVE 可判断冗余程度(比如 TOTAL=15 但 ACTIVE=3,说明有 12 个闲置)
重点盯住四类资源
每一行 TYPE 对应一类关键存储:
- Images:镜像层叠加后的实际体积,含悬空层;通常占最大头
- Containers:仅统计容器可写层(overlay2 的 diff 目录),不含镜像本体
-
Local Volumes:独立 volume 数据,路径明确(如
/var/lib/docker/volumes/app_logs/_data),易被低估但可能暴涨 - Build Cache:构建缓存,常是“隐形大户”,尤其 CI/CD 频繁时可达数 GB
一键展开明细定位大头
加 -v 参数立刻看到每项具体占用:
-
docker system df -v→ 列出所有镜像名+标签+SIZE,相同镜像多标签只计一次共享层 - 悬空镜像(dangling=true)单独归类,基本可删
- Volumes 区域显示名称和宿主机路径,方便后续用
du -sh进一步探查
配合 du 快速验证真实用量
docker system df 是概览,要确认真实磁盘压力,补一句:
-
sudo du -sh /var/lib/docker→ 查 Docker 根目录总大小,与 SIZE 总和交叉验证 - 若两者相差较大(比如 df 显示 5GB,du 显示 12GB),说明存在外部挂载或残留文件,需人工排查











