Skip to main content
☘️ Septvean's Documents
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

overlay2 和 UnionFS 的联系

先给结论👇

UnionFS 是“思想 / 技术类别”,overlay2 是“Linux 上的具体实现”。

一、概念层级关系(最重要)

UnionFS(联合文件系统)
   ├─ AUFS        (早期 Docker 用,已淘汰)
   ├─ OverlayFS
   │     └─ overlay2   ← Docker 默认
   ├─ btrfs
   └─ zfs

结论:

  • UnionFS:一类“把多层目录合并成一个视图”的文件系统思想
  • overlay2:基于 Linux OverlayFSDocker 存储驱动实现

二、UnionFS 是什么(抽象层)

UnionFS 解决什么问题?

多个目录 -> 看成一个目录

  • 下层:只读(镜像层)
  • 上层:可写(容器层)
  • 合并后:进程只看到一个文件系统

UnionFS 的核心能力

  • 分层(Layer)
  • Copy-on-Write(写时复制)
  • 共享只读层

👉 这是一个“设计思想 + 技术类别”,不是 Docker 专属

三、overlay2 是什么(实现层)

overlay2 的本质

overlay2 = OverlayFS + Docker 的层管理规则

  • OverlayFS:Linux 内核原生 UnionFS
  • overlay2:Docker 对 OverlayFS 的使用方式

overlay2 的关键目录

lowerdir = 镜像层(多个)
upperdir = 容器写层
workdir  = 内核工作目录
merged   = 最终视图

进程访问的其实是 merged

四、为什么 Docker 选 overlay2?

对比 UnionFS 其他实现:

方案 状态 原因
AUFS 淘汰 不进主线内核
devicemapper 弃用 复杂、性能差
btrfs 小众 运维成本高
zfs 特殊 依赖强
overlay2 ✅ 默认 内核原生、快、简单、稳

👉 overlay2 是“工程最优解”

五、overlay2 和 UnionFS 的关系一句话版

UnionFS overlay2
抽象概念 具体实现
一类文件系统 Docker 存储驱动
定义“怎么叠” 真正“怎么干”
可多种实现 只是一种实现

六、总结

UnionFS 是联合文件系统的统称,overlay2 是 Docker 基于 Linux OverlayFS 实现的 UnionFS 存储驱动,也是当前默认和最推荐的实现。

overlay2 不是一个文件系统,而是 Docker 使用 OverlayFS 的方式。