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 
相关推荐
ltl5 小时前
大多数「无锁」代码其实不是无锁的
linux
ltl5 小时前
Linux 内核的内存屏障:一个让我调了三天的 bug
linux
Dontla6 小时前
预置known_hosts如何防止中间人攻击(MITM)?(服务器公钥、服务器私钥)Runner、DNS污染、BGP劫持、同网络ARP欺骗、SSH握手
服务器·网络·ssh
Pluchon7 小时前
Java个人综合项目——萌部落社区V2.0
java·python·spring·spring cloud·postman·idea
Lonely 净土7 小时前
Rocky Linux 安装教程
linux·运维·服务器
梦雨生生7 小时前
java开发工具(学习第一天)
java·开发语言·学习
她说可以呀8 小时前
Spring-ai-alibaba文生图
java·人工智能·spring
松仔log10 小时前
Java中级——组合和继承
android·java·开发语言
不才不才不不才10 小时前
Spring 源码系列(16): doDispatch 全流程——一次请求的主干链路
java·后端·spring
snow@li10 小时前
HikariCP:高性能数据库连接池全景深入梳理
java·数据库