温馨提示×

linux overlay有什么用

小樊
37
2026-09-03 11:11:59
栏目: 智能运维

Linux 的 Overlay(OverlayFS) 是一种联合文件系统(Union Filesystem),它的主要作用是可以把多个目录(层)叠加在一起,让用户和应用程序看到一个统一的目录视图

简单来说:

把“只读层”和“可写层”叠在一起,读的时候从上往下找,写的时候只写到最上层。


一、OverlayFS 的核心用途

1️⃣ 容器技术的基础(最重要)

Docker、Kubernetes、Podman 等容器运行时都依赖 OverlayFS。

典型结构:

upperdir(可写层)     ← 容器运行时修改的文件
lowerdir(只读层)     ← 镜像文件(如 ubuntu:22.04)
merged(统一视图)     ← 容器里看到的文件系统

✅ 好处:

  • 多个容器可共享同一个镜像层
  • 容器修改不影响原镜像
  • 启动快、占用空间小

2️⃣ 只读系统 + 可写覆盖

常用于:

  • 嵌入式设备
  • Live CD / Live USB
  • 路由器、机顶盒

例如:

  • 底层是只读的系统镜像
  • 上层是内存或磁盘中的可写层
  • 重启后可清除变更(或保留)

3️⃣ 系统调试 / 实验而不破坏原系统

你可以在不修改原系统的情况下:

  • 测试软件
  • 修改配置文件
  • 做实验

如果出问题:

  • 直接删掉 upper 层即可恢复

4️⃣ 多版本文件系统的叠加

例如:

  • 基础系统
  • 安全补丁层
  • 业务定制层

不同组合就能得到不同系统,而不复制多份文件。


二、OverlayFS 的工作原理(简要)

目录结构示例:

/mnt/lower    (只读)
/mnt/upper    (可读写)
/mnt/work     (内部使用)
/mnt/merged   (最终看到的结果)

挂载命令:

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

规则:

  • 读文件:从 upper → lower 查找
  • 写文件:写入 upper
  • 删除文件:在 upper 中创建 whiteout 标记(不是真的删 lower)

三、Overlay 的常见使用场景总结

场景 说明
Docker 容器 镜像层 + 容器层
系统恢复 只读根文件系统
安全沙箱 防篡改
快速测试 不污染原系统
嵌入式 节省存储空间

四、一句话总结

Linux Overlay 的作用,就是用最小的代价,把“原系统”和“修改内容”分开,又能让用户看到一个完整的系统。

如果你愿意,我也可以:

  • 给你一个 手动搭建 overlay 的实验示例
  • Docker 是怎么用 overlay 的
  • 对比 overlay 和 aufs / btrfs

0