首页/云/Docker 容器速查/docker system df 空间分析
容器排障52 条

docker system df 空间分析

镜像、容器可写层、卷、构建缓存四类分开看占用:docker system df 给总量,-v 展开到具体对象,先分清是谁占的空间。

Docker 容器速查云更新于 2026-10-13

先分清谁占的空间

docker system df 把磁盘占用分成几类分别统计:镜像、容器可写层、本地卷,以及较新版本里的构建缓存。总量之外它还给出可回收大小,用来估算清理收益。判断磁盘水位时先看这张表,用 -v 展开到具体对象,才能确定该清理镜像、卷还是缓存,避免一上来就做全量清理。

基本信息

总览docker system df
明细docker system df -v 展开到每个镜像、容器、卷
容器层占用docker ps -s 看 Size(可写层)与 Virtual size
构建缓存buildx 构建器的缓存在某些环境不体现在这张表里,用 buildx du 复核

典型使用场景

  • 磁盘告警先定位类别:是镜像堆积、卷增长还是构建缓存膨胀
  • 清理前评估收益:看可回收大小决定清理范围与顺序
  • 容器可写层排查:应用往容器内写日志或临时文件,可写层会持续变大
  • 卷增长排查:数据库与上传目录的卷是常见增长源
  • 多环境机器盘点:一台机器上跑了多个项目,先分类再决定谁可以让步

查看与展开

查看与展开
# 分类总览
docker system df

# 展开到具体对象,输出较长建议分段看
docker system df -v | head -40

# 看哪些容器的可写层偏大
docker ps -a -s --format '{{.Names}} {{.Size}} {{.State}}' | head -10

# 构建缓存单独统计(buildx)
docker buildx du --summary

输出逐列读法

列含义正常/异常
TYPE对象类别:镜像、容器、本地卷、构建缓存逐类看,避免只盯一类
TOTAL该类对象数量卷与缓存数量持续增长要安排清理
ACTIVE正在被使用的对象数为 0 的类别大多可回收
SIZE占用磁盘空间占满盘符即为清理信号
RECLAIMABLE可回收大小是理论上限,实际释放受共享层影响
镜像层是共享的,明细加起来常常大于实际占用,判断真实空间以总览中的合计为准,清理后用同一命令复查变化量。
卷占用在这张表里只能看个大概,精确值要对具体卷的挂载点做 du,统计大卷时注意对业务 IO 的影响。

易错点

  • 只看总量不看类别:清理对象选错,删掉镜像却发现磁盘没变多少,时间都浪费在重建缓存上
  • 把可回收大小当实际可释放量:共享层与运行中对象会让实际释放量明显小于这个数字
  • 忽略容器可写层:应用把日志与临时文件写进容器内,单个容器就能吃掉几十 GB
  • 忘记构建缓存这一类:长期跑的构建机上缓存往往最大,单独用 buildx du 复核一次

数据来源与参考

  • Docker 官方 CLI 参考:docker system df(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌