在 Linux 中,Overlay 通常指 OverlayFS,是一种联合文件系统,常用于容器(如 Docker)、Live CD、只读根文件系统等场景。下面按常见使用方式给你详细说明。
Overlay 把多个目录“叠加”成一个目录:
merged
├── 来自 lowerdir(只读)
└── 来自 upperdir(可写)
确认内核支持 OverlayFS:
lsmod | grep overlay
# 或
modprobe overlay
一般 Linux 3.18+ 已支持,现代发行版默认开启。
mkdir -p /mnt/overlay/{lower,upper,work,merged}
echo "lower file" > /mnt/overlay/lower/file.txt
mount -t overlay overlay \
-o lowerdir=/mnt/overlay/lower,\
upperdir=/mnt/overlay/upper,\
workdir=/mnt/overlay/work \
/mnt/overlay/merged
ls /mnt/overlay/merged
cat /mnt/overlay/merged/file.txt
upperupper 产生 whiteout编辑 /etc/fstab:
overlay /mnt/overlay/merged overlay defaults,lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work 0 0
然后:
mount -a
mount -t overlay overlay \
-o lowerdir=/lower1:/lower2:/lower3,\
upperdir=/upper,\
workdir=/work \
/merged
✅ 顺序很重要:前面的优先级更高
Docker 默认使用 overlay2:
docker info | grep Storage
无需手动配置,Docker 自动管理:
/var/lib/docker/overlay2
| 场景 | 说明 |
|---|---|
| 容器 | Docker / Podman |
| Live CD | 只读系统 + 可写内存 |
| 系统保护 | 根目录只读 |
| 增量更新 | 不修改原始文件 |
workdir and upperdir must reside under the same mount
invalid argument
mount | grep overlay
cat /proc/mounts
umount /mnt/overlay/merged
如果你有具体使用场景(比如:
✅ 保护根目录
✅ 制作 Live 系统
✅ Docker / Kubernetes
✅ initramfs),我可以给你针对性的完整配置方案。