温馨提示×

centos overlay占用空间大吗

小樊
47
2026-09-15 08:46:03
栏目: 云计算

简短结论:CentOS 里的 overlay(overlayfs)本身“不额外占多少空间”,但它下面的上层目录(upperdir)会真实占用磁盘空间;如果你用的是 Docker 的 overlay2 存储驱动,镜像和容器产生的数据都可能落在里面,所以“看起来占用大”通常不是 overlay 本身,而是数据。

下面分情况说明:


1. overlayfs 本身占空间吗?

几乎不占。

overlay 是一种联合挂载文件系统

  • lowerdir:只读层(如镜像层)
  • upperdir:可读写层(如容器改动)
  • workdir:临时工作目录
  • 挂载后看到的“合并视图”不复制文件

✅ 文件没修改时:不占额外空间 ❌ 文件被修改(写时复制,copy-on-write):会在 upperdir 复制一份


2. CentOS + Docker 的 overlay2 常见情况

在 CentOS 7/8 上,Docker 默认存储驱动通常是 overlay2

路径一般是:

/var/lib/docker/overlay2

这里会包含:

  • 镜像层(只读)
  • 容器可写层
  • 日志、临时文件等

容易“占用大”的原因:

  1. 容器频繁写日志(/var/lib/docker/containers/*/json.log
  2. 容器里产生大量小文件
  3. 没清理停止的容器 / 悬空镜像
  4. 数据库类应用直接写容器层

3. 如何判断是不是 overlay 占空间

df -h
du -sh /var/lib/docker

看具体:

du -sh /var/lib/docker/overlay2

清理 Docker:

docker system df
docker system prune -a

⚠️ prune -a 会删未使用镜像,谨慎操作


4. 和别的方案比

  • overlay2:空间效率高,推荐
  • devicemapper(旧 CentOS):更容易爆盘
  • btrfs / zfs:功能多但复杂

5. 总结

  • overlay 本身不占空间
  • 真正占空间的是:容器可写层 + 日志 + 未清理数据
  • CentOS 上用 overlay2 是正常且高效的

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

  • CentOS 版本
  • 是否用 Docker
  • df -hdu 的结果

我可以帮你具体看是哪块在吃空间。

0