温馨提示×

centos overlay为何占空间

小樊
42
2026-09-30 08:31:23
栏目: 云计算

在 CentOS(以及大多数使用 OverlayFS 的 Linux 系统,如 Docker 场景)中,overlay 占空间通常来自以下几个方面,下面按“是什么 + 为什么会占 + 怎么查/怎么处理”来讲。


一、Overlay 是什么(先理清结构)

OverlayFS 是一种联合文件系统,典型结构(以 Docker 为例):

overlay
 ├── lowerdir  (只读层,如镜像层)
 ├── upperdir  (可读写层,容器/系统改动)
 └── workdir   (临时工作目录)

你看到的“overlay 占空间”,通常不是 overlay 本身,而是:

  • upperdir 里堆积的数据
  • 历史层没清理
  • 日志 / 临时文件 / 缓存

二、CentOS 中 overlay 占空间的常见原因

1️⃣ Docker / Podman 容器写入层(最常见)

容器里:

  • 写日志
  • 产生临时文件
  • 安装软件
  • 应用缓存

都会落在:

/var/lib/docker/overlay2

✅ 即使容器停止,数据仍在
✅ 删除容器 ≠ 删除 volume(有时)

排查:

du -sh /var/lib/docker/overlay2/*

2️⃣ 已退出但未删除的容器

docker ps -a

很多 Exited 容器仍占空间。

清理:

docker container prune

3️⃣ 悬空镜像 / 旧层(dangling)

docker images -f dangling=true

清理:

docker image prune

4️⃣ 日志文件无限增长

Docker 默认 json-file 日志不限制大小。

查看:

du -sh /var/lib/docker/containers/*

解决:

  • 限制日志大小
  • 或改用 journald

5️⃣ 系统本身使用 overlay(如 LiveCD / 特殊 root)

如果是:

  • CentOS Live 系统
  • 特殊 initramfs overlay root

那 overlay 占空间 = 所有写操作都在内存/磁盘 overlay 中


6️⃣ yum / dnf 缓存

/var/cache/yum
/var/cache/dnf

清理:

yum clean all
dnf clean all

三、快速定位 overlay 占空间的命令

# 看整体
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 容器日志、缓存和未清理容器。

如果你愿意,可以告诉我:

  • 是 物理机 / 虚拟机 / Docker 主机
  • df -h 和 mount | grep overlay 的输出

我可以帮你精准判断是哪一类问题。

0 踩