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 
相关推荐
倒流时光三十年4 分钟前
PostgreSQL 中的 NULL 陷阱:从一次排除过滤说起
java·数据库·postgresql
代码改善世界8 分钟前
【C++进阶】二叉搜索树
java·数据结构·c++
学习3人组8 分钟前
业务主表+JSON自定义字段
java·spring boot·json
雨落在了我的手上9 分钟前
初识java(六):方法的使用
java·开发语言
张敬之、10 分钟前
sa-token
java
脆皮炸鸡75513 分钟前
进程通信----命名管道
linux·经验分享·笔记·算法·学习方法
_Evan_Yao18 分钟前
从“全量发布”到“小步快跑”:灰度发布的简单实践与学习路径
java·后端·学习
Mapleay29 分钟前
FE-BE 动态路机制之 DPCM 与 DAPM 协作
linux
想带你从多云到转晴34 分钟前
优选算法---双指针
java·算法
闲适达人44 分钟前
nginx传递url的获取方案
java·服务器·前端