温馨提示×

Linux overlay怎么配置

小樊
35
2026-08-05 10:19:48
栏目: 智能运维

在 Linux 中,Overlay 通常指 OverlayFS,是一种联合文件系统,常用于容器(如 Docker)、Live CD、只读根文件系统等场景。下面按常见使用方式给你详细说明。


一、OverlayFS 基本原理

Overlay 把多个目录“叠加”成一个目录:

  • lowerdir:只读层(一个或多个)
  • upperdir:可写层
  • workdir:临时工作目录
  • merged:最终挂载后的统一视图
merged
 ├── 来自 lowerdir(只读)
 └── 来自 upperdir(可写)

二、内核要求

确认内核支持 OverlayFS:

lsmod | grep overlay
# 或
modprobe overlay

一般 Linux 3.18+ 已支持,现代发行版默认开启。


三、手动挂载 Overlay(示例)

1️⃣ 创建目录结构

mkdir -p /mnt/overlay/{lower,upper,work,merged}

2️⃣ 准备 lower 目录(只读)

echo "lower file" > /mnt/overlay/lower/file.txt

3️⃣ 挂载 Overlay

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

4️⃣ 验证

ls /mnt/overlay/merged
cat /mnt/overlay/merged/file.txt
  • 修改文件 → 写入 upper
  • 删除文件 → 在 upper 产生 whiteout

四、fstab 中配置 Overlay

编辑 /etc/fstab

overlay /mnt/overlay/merged overlay defaults,lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work 0 0

然后:

mount -a

五、多个 lowerdir(层叠)

mount -t overlay overlay \
  -o lowerdir=/lower1:/lower2:/lower3,\
     upperdir=/upper,\
     workdir=/work \
  /merged

顺序很重要:前面的优先级更高


六、Docker 中的 Overlay(常见)

Docker 默认使用 overlay2

docker info | grep Storage

无需手动配置,Docker 自动管理:

/var/lib/docker/overlay2

七、常见用途

场景 说明
容器 Docker / Podman
Live CD 只读系统 + 可写内存
系统保护 根目录只读
增量更新 不修改原始文件

八、常见问题

❌ workdir 和 upperdir 必须在同一文件系统

workdir and upperdir must reside under the same mount

❌ lowerdir 不存在

invalid argument

✅ 查看挂载

mount | grep overlay
cat /proc/mounts

九、卸载 Overlay

umount /mnt/overlay/merged

如果你有具体使用场景(比如:
✅ 保护根目录
✅ 制作 Live 系统
✅ Docker / Kubernetes
✅ initramfs),我可以给你针对性的完整配置方案

0