Ubuntu 中的 overlay(通常指 OverlayFS,一种联合文件系统)用途很广,主要体现在“把多个目录叠加成一个目录、且可写层不破坏底层只读文件”这一特性上。下面按常见场景说明它能用在哪里。
一、容器与虚拟化(最常见)
1. Docker / Kubernetes
- Docker 默认存储驱动之一就是
overlay2
- 镜像层是只读的,容器运行时在 overlay 的“上层”写入
- 好处:
- 多个容器共享同一镜像层,节省磁盘
- 容器删除后,写入层消失,镜像不变
✅ 典型路径:
/var/lib/docker/overlay2
二、系统只读保护 + 可写运行
2. Ubuntu Live CD / 安装盘
- Live 系统根目录是只读的 ISO
- 用 overlay 在内存或磁盘上叠加可写层
- 用户能改配置、装软件,但不影响原始系统
3. 嵌入式 / 工控 / 路由器系统
- 系统分区设为只读(防误改、防断电损坏)
- overlay 放到 tmpfs 或单独分区
- 重启可清除或保留变更
三、系统升级与回滚
4. Ubuntu Core / 原子升级系统
- 基础系统只读
- 升级时切换 overlay 层
- 出问题可回退到旧层
四、开发与测试
5. 不污染真实系统做实验
例如:
- 在只读系统上测试软件
- 修改配置但不想真的改原文件
- 实验完直接丢弃 overlay 层
示例:
mount -t overlay overlay \
-o lowerdir=/usr,upperdir=/tmp/upper,workdir=/tmp/work \
/mnt/test
五、文件系统合并
6. 合并多个目录为一个视图
例如:
/opt/app-a
/opt/app-b
- 统一看作
/opt/app
只读部分共享,写操作只进 upper 层。
六、安全与沙箱
7. 限制写入位置
- 关键目录只读
- 所有写操作重定向到安全区域
- 常用于沙箱、审计环境
七、不适合的地方(注意)
❌ 不适合:
- 高并发数据库(overlay 有性能损耗)
- 需要强一致性的关键存储
- 大量小文件随机写场景
总结一句话
Ubuntu 的 overlay 适合“共享只读 + 临时/可控可写”的场景,尤其是容器、Live 系统、嵌入式、实验环境和系统保护。
如果你有具体使用目的(比如 Docker、树莓派、Live USB、沙箱),我可以给你更针对性的方案。