OverlayFS联合文件系统使用示例

概述:

OverlayFS是UnionFS实现技术之一,是docker使用的主流技术。

OverlayFS 主要有三个参数

  • lowerdir:底层文件系统目录,通常包含的是只读文件系统
  • upperdir:是 OverlayFS 的可写层。当对挂载的目录修改时,这些修改会写入 upperdir 目录。
  • workdir:临时工作空间,主要用于容器修改文件时进行缓存

具体使用方式:

本示例仅仅是做一个样例,便于理解

  1. 首先要有一个测试文件夹
bash 复制代码
mkdir overlayFsDemo
  1. 进入到测试文件夹,并创建需要联合的文件夹以及临时工作文件夹
bash 复制代码
mkdir lower upper  work 
  1. 为每一个文件夹添加文件
bash 复制代码
 echo "hello-upper" > ./upper/upper.txt
 echo "hello-lower" > ./lower/lower.txt
 echo "hello-work" > ./work/work.txt
bash 复制代码
 echo "merge-lower" > ./lower/merge.txt 
 echo "merge-upper" > ./upper/merge.txt 
 echo "merge-work" > ./work/merge.txt 
  1. 创建挂载的文件夹,并挂载
bash 复制代码
mkdir merged
mount -t overlay overlay  -o lowerdir=lower,upperdir=upper,workdir=work   merged
  1. 结果

上述lowerdir和upperdir的内容都被挂载到merged中了,workdir不参与联合,可以进行查看

bash 复制代码
tree -a merged 

对被挂载的文件夹中的内容修改,都会反映到挂载的目录中,如我们对lower文件夹中的文件修改

bash 复制代码
echo "hello-lower-fixed" > ./lower/lower.txt
cat merged/lower.txt 

对于文件名冲突的文件,上层的会覆盖下层的,如我们对lower文件夹中的mearged文件修改

bash 复制代码
echo "merge-lower-fixed" > ./lower/merge.txt 
cat merged/merge.txt 

可以看到还是只显示最上层的

对挂载的目录修改,会看到upper目录也被修改

bash 复制代码
echo "hello-merge" > ./merged/merge.txt 
cat  ./merged/merge.txt
cat ./upper/merge.txt 
相关推荐
zzu123zsw6 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
Ruiery7 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
源码集结号7 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
论文复现现场7 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
乌恩大侠8 小时前
从 AI-RAN 到 AI Agent:基于 NVIDIA Nemotron 构建 5G/6G 智能网络故障诊断系统
服务器·人工智能·5g·o-ru·ai-ran·电信大模型
啃瓜子的松鼠8 小时前
泛微OAe9-后端二开异步调用
java
秋天的怀念_David9 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
外收内放9 小时前
Python基础语法练习题(73)
java·前端·python
Wang's Blog9 小时前
Java 项目实战: 交友项目 - 环信后台发送消息测试
java·交友
用户3721574261359 小时前
Java 操作 Word 脚注和尾注:添加、读取与删除
java