在 Linux 中,“overlay”通常指 OverlayFS(常用于 Docker、容器、Live CD 等)。清理 overlay 需要根据使用场景来判断,否则容易误删数据。下面按常见场景说明。
先确认来源:
mount | grep overlay
常见情况:
/var/lib/docker/overlay2 → Docker 使用/run/docker → Docker 运行时mount -t overlaydocker system df
docker system prune
只删除未使用的数据(安全):
docker system prune -f
包括未使用的镜像、容器、网络、build cache:
docker system prune -a -f
⚠️ 注意:-a 会删除所有未被容器使用的镜像。
路径:
/var/lib/docker/overlay2
❌ 不要直接 rm -rf
如果一定要手动(仅限 Docker 已停止):
systemctl stop docker
rm -rf /var/lib/docker/overlay2/*
systemctl start docker
否则可能导致:
overlay 变大,很多时候是 容器日志 导致:
du -sh /var/lib/docker/containers/*/*-json.log
限制日志大小(推荐)✅
编辑 /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
然后重启 Docker:
systemctl restart docker
mount | grep overlay
umount /mnt/overlay
OverlayFS 通常是:
lowerdir(只读)upperdir(可写)workdir清理 upperdir 即可(确认无重要数据):
rm -rf upperdir/*
rm -rf workdir/*
常见于 Live 系统:
du -sh /run/overlay
如果是临时文件系统(tmpfs):
reboot
即可自动清理。
# 查看 overlay 占用
du -sh /var/lib/docker/overlay2
# 查看哪个容器占用最多
docker ps -s
# 查看挂载
mount | grep overlay
| 场景 | 推荐做法 |
|---|---|
| Docker overlay | docker system prune |
| overlay2 目录 | 不要手动删 |
| 容器日志大 | 限制日志大小 |
| 手动 overlay | umount + 清 upperdir |
| Live CD | 重启 |
如果你愿意,可以把下面信息发我,我可以给你精确命令:
mount | grep overlaydu -sh /var/lib/docker