温馨提示×

Linux overlay是干嘛的

小樊
46
2026-08-05 10:23:49
栏目: 智能运维

Linux 的 overlay(通常指 OverlayFS)是一种联合文件系统(union filesystem),主要作用是:
把多个目录“叠加”在一起,形成一个统一的视图,而无需复制数据。


一句话理解

OverlayFS 可以让你“在上层看到下层的内容,同时在上层做修改,不影响下层”。


核心用途

1. 容器技术(最常见)

Docker、Podman、Kubernetes 等容器运行时大量使用 overlay:

  • 镜像层是只读的(lowerdir)
  • 容器运行时是可写的(upperdir)
  • 最终看到的文件系统是合并后的(merged)

例如:

镜像层(只读)
  └── /bin, /lib, /usr
容器层(可写)
  └── /tmp, /etc
合并后:
  /bin /lib /usr /tmp /etc

好处:

  • 多个容器共享同一个镜像层
  • 容器之间互不干扰
  • 启动快、省磁盘

2. 系统只读 + 可写层

常用于:

  • Live CD / Live USB
  • 嵌入式系统
  • 系统恢复环境

结构:

只读根文件系统
可写内存或磁盘层
合并后给用户使用

这样:

  • 系统文件不会被破坏
  • 重启后可恢复

3. 临时修改目录内容

比如你想“临时改一个目录”,但不想真的改原目录:

mount -t overlay overlay \
  -o lowerdir=/original,upperdir=/write,workdir=/work \
  /merged
  • /original:原始数据(不动)
  • /write:你的修改
  • /merged:你看到的最终结果

OverlayFS 的关键概念

概念 作用
lowerdir 只读层(一个或多个)
upperdir 可写层(只有一个)
workdir 内部工作目录(必须和 upperdir 同文件系统)
merged 最终挂载点(你看到的结果)

基本挂载示例

mount -t overlay overlay \
  -o lowerdir=/lower,upperdir=/upper,workdir=/work \
  /mnt/overlay
  • 读文件:优先 upper,没有就去 lower
  • 写文件:只写在 upper
  • 删除文件:在 upper 里标记“白障(whiteout)”

为什么叫 “overlay”

因为它覆盖式叠加

  • 同名文件:上层覆盖下层
  • 同名目录:合并内容

和其他文件系统对比

文件系统 特点
OverlayFS 轻量、内核原生、适合容器
AUFS 老牌 union fs,但已过时
tmpfs 纯内存文件系统
btrfs 支持快照,但复杂

总结

Linux overlay(OverlayFS)是用来:

  • ✅ 合并多个目录
  • ✅ 实现“只读 + 可写”
  • ✅ 容器镜像和容器运行时的基础
  • ✅ 临时修改而不破坏原数据

如果你愿意,我也可以:

  • Docker 实际例子讲 overlay
  • 画一张 目录叠加示意图
  • overlay 和 overlay2 的区别

你想从哪个角度继续?

0