docker system df 是什么
docker system df 汇总 Docker 各占用的磁盘空间:镜像、容器、本地数据卷与构建缓存,并给出其中可回收的容量。磁盘告警时它是第一眼要看的工具——先分清是镜像堆积、容器可写层写满,还是数据卷膨胀,再决定用哪种清理手段。加 -v 会展开明细,能直接定位到具体是哪个卷或哪个镜像占了空间。
基本信息
| 输出类型 | Images、Containers、Local Volumes、Build Cache 四类 |
|---|---|
| 关键列 | SIZE 是总占用,RECLAIMABLE 是可回收的空间 |
| -v 参数 | 展开明细,列出每个镜像、容器与卷的具体用量 |
| 进一步下钻 | 用 du 查看 /var/lib/docker 下各子目录的实际占用 |
| 使用前提 | 需要 Docker 守护进程可访问,只读命令不影响业务 |
典型使用场景
- 磁盘告警第一步:确认空间被哪类资源吃掉,避免盲目清理
- 清理前评估:看 RECLAIMABLE 决定做保守清理还是彻底清理
- 卷泄漏排查:-v 展开后定位异常膨胀的数据卷
- CI 机器巡检:定时记录各资源占用,观察增长趋势
- 发布前腾空间:镜像拉取前确认剩余空间是否够用
使用示例
使用示例
docker system df # 四类资源的总览与可回收量
docker system df -v # 展开明细,逐项看镜像/容器/卷
docker system df -v | head -n 40 # 明细较长,先看前几屏
du -sh /var/lib/docker/volumes/* 2>/dev/null | sort -rh | head # 定位大卷
df -h /var/lib/docker # 确认宿主分区真实剩余空间输出逐列读法
| 列 | 含义 | 关注点 |
|---|---|---|
| TYPE | 资源类型 | 先判断空间被哪类吃掉 |
| TOTAL | 该类的资源数量 | 镜像数量暴涨通常说明版本堆积 |
| ACTIVE | 正在被使用的数量 | 活跃数为零说明可以安全清理 |
| SIZE | 占用总空间 | 与宿主分区容量对比看压力 |
| RECLAIMABLE | 可安全回收的空间 | 为零说明清理也没用,要去查卷 |
构建缓存在 CI 机器上增长最快,数据卷在数据库与上传目录场景增长最快。按机器用途区分治理策略,比一刀切地清理更有效。
当 RECLAIMABLE 很小但磁盘依然吃紧,问题通常在数据卷或容器可写层:用 -v 展开明细,或直接查看卷目录大小,而不是反复执行清理命令。