温馨提示×

ubuntu overlay配置有何作用

小樊
40
2026-10-18 11:20:07
栏目: 智能运维

在 Ubuntu(以及其它 Linux 发行版)中,overlay(通常指 OverlayFS)是一种联合文件系统(union filesystem),它的主要作用可以概括为:

把多个目录“叠加”在一起,形成一个统一的视图,并且只在对上层做写操作时才真正写入,而不修改下层。


一、OverlayFS 的基本概念

OverlayFS 至少需要两个目录:

  • lowerdir(下层):只读层,通常是原始系统或镜像
  • upperdir(上层):可写层,所有修改都会写在这里
  • workdir(工作目录):OverlayFS 内部使用的临时目录
  • merged(挂载点):最终用户看到的统一目录

挂载示例:

mount -t overlay overlay \
  -o lowerdir=/lower,upperdir=/upper,workdir=/work \
  /merged

此时:

  • 读文件:优先从 upper 读,没有再从 lower 读
  • 写文件:只写入 upper
  • 删除文件:在 upper 中创建一个“白障(whiteout)”标记

二、Ubuntu 中 overlay 的主要作用

1️⃣ 容器技术的基础(Docker / Kubernetes)

这是 最常见的用途。

  • Docker 镜像本身是只读的(lowerdir)
  • 容器运行时在其上叠加一个可写层(upperdir)
  • 容器销毁后,写层可丢弃,镜像不变

✅ 好处:

  • 镜像可复用
  • 启动快
  • 节省磁盘空间

2️⃣ Live CD / 安装介质

Ubuntu Live USB 通常使用 overlay:

  • 底层是只读的 ISO 文件系统
  • 上层是内存或磁盘的可写层
  • 用户操作不会破坏原始系统

3️⃣ 系统保护与只读 rootfs

在嵌入式或高安全场景:

  • 根文件系统设为只读
  • overlay 提供临时可写层
  • 重启后恢复初始状态

常用于:

  • 工控设备
  • 路由器
  • 公共终端

4️⃣ 软件测试 / 安全沙箱

  • 在 overlay 上安装/修改软件
  • 测试完成后直接删除 upperdir
  • 原系统完全不受影响

5️⃣ 节省磁盘空间

多个环境可共享同一个 lowerdir:

lower: ubuntu-base
upper1: test-a
upper2: test-b

避免重复拷贝整个系统。


三、Overlay 不适合做什么?

❌ 不适合:

  • 长期存储重要数据(应放在独立分区)
  • 高并发写密集型数据库(性能与复杂度问题)
  • 需要严格权限/审计的场景(写层分离)

四、如何查看 Ubuntu 是否在使用 overlay?

mount | grep overlay

或:

cat /proc/mounts | grep overlay

Docker 容器通常能看到类似:

overlay on /var/lib/docker/overlay2/... type overlay

五、一句话总结

Ubuntu 中的 overlay 配置,本质是用“只读底层 + 可写上层”的方式,实现高效、灵活、可恢复的 filesystem 使用方式,是容器和只读系统的核心技术。

如果你愿意,我可以:

  • 帮你 手动搭建一个 overlay 环境
  • 解释 Docker overlay2 原理
  • 或讲 Ubuntu 开机自动挂载 overlay 的配置方法

0 踩