温馨提示×

什么是linux overlay

小樊
50
2026-09-03 11:09:55
栏目: 智能运维

Linux Overlay 通常有两种常见含义,主要取决于你是在文件系统还是容器/虚拟化语境下听到这个词。最常见、最核心的是 OverlayFS(Overlay 文件系统)

下面我分点说明,重点讲最常用的部分。


一、OverlayFS(最常见含义)

OverlayFS 是 Linux 内核提供的一种 联合挂载(union mount)文件系统

核心作用

多个目录 合并成一个 统一的视图,但:

  • 不复制数据
  • 支持“上层覆盖下层”
  • 对底层只读、上层可写

基本概念(目录角色)

OverlayFS 通常由以下几层组成:

  1. lower(下层,只读)

    • 基础文件系统
    • 不可修改(或修改不影响原数据)
  2. upper(上层,可写)

    • 用户真正写入的地方
    • 覆盖 lower 中的同名文件
  3. work(工作目录)

    • 内核内部使用
    • 必须和 upper 在同一文件系统
  4. merged(挂载点)

    • 用户看到的统一目录

简单示例

mkdir lower upper work merged
echo "I am lower" > lower/file.txt

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

cat merged/file.txt
# I am lower

echo "I am upper" > merged/file.txt
cat merged/file.txt
# I am upper

cat lower/file.txt
# I am lower(原文件未变)

典型应用场景

Docker / Kubernetes

  • 镜像层 = lower
  • 容器层 = upper
  • 容器看到的文件系统 = merged

系统只读 + 用户可写

  • 嵌入式系统
  • Live CD / 恢复系统

增量更新

  • 不修改原系统,只记录差异

二、容器中的 “overlay” / “overlay2”

在 Docker 中:

  • overlay:早期存储驱动
  • overlay2(推荐):改进版,性能更好

查看:

docker info | grep Storage

三、其他含义(较少见)

1. Overlay 网络(容器网络)

如:

  • Docker overlay network
  • Kubernetes overlay network

指的是:

在底层网络上“叠加”一个虚拟网络

和文件系统无关。


2. 图形 / 显示中的 overlay

  • 视频 overlay
  • 硬件叠加层

属于显示技术,和 Linux 内核文件系统无关。


总结一句话

Linux Overlay 通常指 OverlayFS:一种把多个目录“叠”在一起、上层覆盖下层的联合文件系统,是 Docker 和现代容器技术的基石。

如果你是想了解:

  • Docker 原理
  • 容器存储
  • 手动使用 overlay
  • 或 overlay 网络

可以告诉我,我可以继续深入讲。

0