在 CentOS(以及大多数使用 OverlayFS 的 Linux 系统,如 Docker 场景)中,overlay 占空间通常来自以下几个方面,下面按“是什么 + 为什么会占 + 怎么查/怎么处理”来讲。
OverlayFS 是一种联合文件系统,典型结构(以 Docker 为例):
overlay
├── lowerdir (只读层,如镜像层)
├── upperdir (可读写层,容器/系统改动)
└── workdir (临时工作目录)
你看到的“overlay 占空间”,通常不是 overlay 本身,而是:
容器里:
都会落在:
/var/lib/docker/overlay2
✅ 即使容器停止,数据仍在
✅ 删除容器 ≠ 删除 volume(有时)
排查:
du -sh /var/lib/docker/overlay2/*
docker ps -a
很多 Exited 容器仍占空间。
清理:
docker container prune
docker images -f dangling=true
清理:
docker image prune
Docker 默认 json-file 日志不限制大小。
查看:
du -sh /var/lib/docker/containers/*
解决:
journald如果是:
那 overlay 占空间 = 所有写操作都在内存/磁盘 overlay 中
/var/cache/yum
/var/cache/dnf
清理:
yum clean all
dnf clean all
# 看整体
df -h
# 看 overlay 挂载
mount | grep overlay
# 找大目录
du -h --max-depth=1 /var/lib/docker
✅ 推荐:
docker system prune -a
❌ 不要直接删:
/var/lib/docker/overlay2/xxxx
CentOS 中 overlay 占空间,99% 是因为“写层在不断累积数据”,尤其是 Docker 容器日志、缓存和未清理容器。
如果你愿意,可以告诉我:
df -h 和 mount | grep overlay 的输出我可以帮你精准判断是哪一类问题。