当前位置: 首页 > article >正文

Linux学习-Docker文件系统

Overlayfs

Overlayfs 是一种类似 aufs 的一种堆叠文件系统,于 2014 年正式合入 Linux-3.18 主线内核,目前其功能已经基本稳定(虽然还存在一些特性尚未实现)且被逐渐推广。
Overlayfs 是一种堆叠文件系统,它依赖并建立在其它的文件系统之上(例如 ext4fs 和 xfs 等等),并不直接参与磁盘空间结构的划分,仅仅将原来底层文件系统中不同的目录进行“合并”,然后向用户呈现。

  • 上下层同名目录合并;
  • 上下层同名文件覆盖;
  • lowerdir 文件写时拷贝。
    在这里插入图片描述
进程读写overlayfs文件规则
  • 进行读文件时,overlayfs文件系统驱动将优先在上层目录upperdir中查找并从该目录中读取文件,找不到则在下层目录lowerdir中查找
  • 当进程写入文件时,overlay会将其写入上层目录upperdir
# 通过docker inspect containerId查看容器信息,GraphDriver显示容器文件系统信息
# 1.LowerDir 表示镜像层
# 2.UpperDir表示容器可写层
# 3.MergerdDir合并LowerDir和UpperDir中的文件列表

 "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/4b364d64c6776b8c5684572e0d039ed9ced2e26678a6671e77eef03f7fe312db-init/diff:/var/lib/docker/overlay2/a453b7613bb70c11cfaba21c8ec2ce2b62cafd5b2ce864a983fc188cf1410f7e/diff:/var/lib/docker/overlay2/5a722654b3ef692287ed75092f41619a68f1ed6eff4c1197f5989b8ec0798946/diff:/var/lib/docker/overlay2/1ddbf08a0d41a22bd279217d97c1af32126eb1b9276f1fe12b0a662799cca000/diff:/var/lib/docker/overlay2/dcde7a130131c1c78759c9ddd488582e1f28fa85756f89811d412080de0bc82e/diff:/var/lib/docker/overlay2/fb398cea00431e00a306d54e5ff53de55e71910915e5748725436c30af491215/diff:/var/lib/docker/overlay2/4393bf50faa2d30d9c1666a6a5a308583ff898e31193b664b562b5e228453e80/diff:/var/lib/docker/overlay2/60fd8dd602df65b6093e44e9294aee1d93636e6a0a96193cd55febc3ec054596/diff",
                "MergedDir": "/var/lib/docker/overlay2/4b364d64c6776b8c5684572e0d039ed9ced2e26678a6671e77eef03f7fe312db/merged",
                "UpperDir": "/var/lib/docker/overlay2/4b364d64c6776b8c5684572e0d039ed9ced2e26678a6671e77eef03f7fe312db/diff",
                "WorkDir": "/var/lib/docker/overlay2/4b364d64c6776b8c5684572e0d039ed9ced2e26678a6671e77eef03f7fe312db/work"
            },
            "Name": "overlay2"
        }
overlayfs实战
加载overlay模块
[root@mysql5 ~]# lsmod | grep overlay
overlay                91659  
#如未加载,采用以下命令加载
modeprobe overlay
模拟overlayfs文件系统
[root@mysql5 ~]# mkdir overlay
[root@mysql5 ~]# cd overlay
[root@mysql5 overlay]# mkdir upper lower merged work
[root@mysql5 overlay]# echo "I'm lower layer" > lower/lower_layer.txt
[root@mysql5 overlay]# echo "I'm upper layer" > upper/upper_layer.txt
[root@mysql5 overlay]# echo "I'm upper layer" > upper/both_layer.txt
[root@mysql5 overlay]# echo "I'm lower layer" > lower/both_layer.txt

[root@mysql5 overlay]# tree
.
├── lower
│   ├── both_layer.txt
│   └── lower_layer.txt
├── merged
├── upper
│   ├── both_layer.txt
│   └── upper_layer.txt
└── work
# 合并上层目录和下层目录
[root@mysql5 overlay]# mount -t overlay overlay -o lowerdir=./lower/,upperdir=./upper/,workdir=./work/ ./merged/
[root@mysql5 overlay]# tree
.
├── lower
│   ├── both_layer.txt
│   └── lower_layer.txt
├── merged
│   ├── both_layer.txt
│   ├── lower_layer.txt
│   └── upper_layer.txt
├── upper
│   ├── both_layer.txt
│   └── upper_layer.txt
└── work
    └── work

http://www.kler.cn/a/301785.html

相关文章:

  • 数据分析-Excel基础操作
  • 常见的测试方法
  • 【CV】头盔检测区域入侵项目
  • Dubbo 3.x源码(25)—Dubbo服务引用源码(8)notify订阅服务通知更新
  • 云计算复习文档
  • CC6学习记录
  • 3. 轴指令(omron 机器自动化控制器)——>MC_PowerMC_MoveJog
  • mysql的zip解压缩版安装
  • MySQL根据日期统计时没有数据的日期也需要返回0
  • 图计算:基于SparkGrpahX计算聚类系数
  • 在Linux系统中“普通场景”下隐匿操作痕迹
  • 算法学习攻略总结 : 入门至进阶,通关之路指南
  • jmeter依赖jar包找不到类路径
  • CTF(misc)
  • 微调语言模型前,需要考虑这三个关键方面
  • pwn题目搭建过程中glibc出现问题的解决方案
  • 计算机视觉学习路线
  • 获取STM32 MCU的唯一ID
  • vue国际化
  • Job定时自动执行SQL日志记录脚本
  • OCC开发_变高箱梁全桥建模
  • Mysql梳理3——基本的SELECT语句
  • 【Linux】Linux常见指令以及权限理解(下)
  • 【PyTorch单点知识】像素洗牌层:torch.nn.PixelShuffle在超分辨率中的作用说明
  • centos模式切换
  • 【系统架构设计师】原型模式详解