overlayfs是实现“即用即弃”环境最直接的内核原生方案,核心在于运行时改动仅写入upperdir,退出后卸载并清空即可彻底归零,底层只读层(如squashfs或容器镜像解压层)完全不受影响;upperdir建议用tmpfs确保重启自动消失,workdir须与之同文件系统且保持为空,挂载后所有变更隔离于/mnt/merged视图内。

OverlayFS 是实现“即用即弃”业务环境最直接、内核原生支持的方案。它的核心价值在于:所有运行时改动只落在可写层,退出后一键清空上层,底层镜像或系统完全不受影响,干净、快速、零残留。
准备只读基础环境
这是“即弃”的前提——业务依赖必须固化在不可变层中。常见做法包括:
- 把编译好的应用二进制、配置模板、静态资源打包成 SquashFS 镜像(压缩+只读,安全高效);
- 或直接使用标准容器镜像解压后的只读层(如 /var/lib/overlay-base);
- 确保该层挂载为只读(ro),且不与 upperdir 共享文件系统。
构建可抛弃的运行层
每次启动新环境时,动态分配一个干净的 upperdir 和配套 workdir:
- upperdir 建议用 tmpfs(内存文件系统),重启自动消失,彻底无痕;也可用 ext4 分区,但需手动清理;
- workdir 必须与 upperdir 在同一文件系统,且保持为空;它不存用户数据,仅用于原子操作中转;
- 例如:mkdir -p /tmp/upper /tmp/work /mnt/merged,其中 /tmp 是 tmpfs 挂载点。
挂载并进入隔离环境
执行联合挂载,生成统一视图:
mount -t overlay overlay -o lowerdir=/ro,upperdir=/tmp/upper,workdir=/tmp/work /mnt/merged
随后 chroot 或 unshare 进入 /mnt/merged 即可运行业务。所有日志、临时文件、配置变更、甚至安装的包,全部写入 /tmp/upper,与宿主和其他实例完全隔离。
退出时一键归零
停止业务后,只需两步即可恢复初始状态:
- 卸载合并目录:umount /mnt/merged;
- 清空上层(若用 tmpfs,重启即空;若为磁盘目录,执行 rm -rf /tmp/upper/* 即可)。
下一次启动,又是一个全新、干净、与前次毫无关联的环境。不复杂但容易忽略。











