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 
相关推荐
我叫张土豆5 分钟前
本体论、DDD、SDD、TDD:AI 编程时代的四层认知栈
java·人工智能
白远山17 分钟前
家政服务家政社区派单实战:调度系统架构设计与实现指南
java·开发语言·小程序·架构·需求分析
海南java第二人23 分钟前
从诞生到回收:JVM对象生命周期与垃圾回收全链路解析
java
GeW31 分钟前
RHCE快速拿证全攻略:考点拆解+实验强化+时间规划,一次通关
linux
SL_staff1 小时前
JVS-Logic:从页面配置工具到企业级业务逻辑中枢的技术演进
java·算法·全栈
DevRay1 小时前
Java 21虚拟线程深度实战:告别线程池焦虑,百万并发吞吐量直接翻倍(原理+代码+避坑)
java·开发语言
forestsea1 小时前
从零构建 Java 智能体 RAG 系统:Milvus 向量数据库实战指南
java·数据库·milvus
lifewange1 小时前
VSCode怎么运行java
java·ide·vscode
用户094248568031 小时前
第10章:OpenJDK异常体系、栈轨迹与错误诊断入门
java·jvm
沸速存储1 小时前
AI 机器人靠哪些内存与存储驱动整机运行?
服务器·科技·嵌入式硬件·电脑