先分清谁占的空间
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 的影响。