ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

容器原理之镜像实践

2022-03-27 18:31:06  阅读:188  来源: 互联网

标签:容器 workdir overlay upperdir 实践 client localhost 镜像 merged


1 前期准备

按照以下结构创建目录及文件

使用以下命令,目录分别挂载到merged层的client_1和client_2下面

[root@localhost OverlayFS]# mount -t overlay overlay -o lowerdir=./lowerdir -o upperdir=./client_1/upperdir -o workdir=./client_1/workdir ./merged/client_1
[root@localhost OverlayFS]# mount -t overlay overlay -o lowerdir=./lowerdir -o upperdir=./client_2/upperdir -o workdir=./client_2/workdir ./merged/client_2

挂载后的目录结构如下:

接下来在client_1中做一些操作,来观察是否会影响client_2?同时看看操作是否写入到client_1的upperdir中?

具体操作:

[root@localhost client_1]# echo "data no.1">>file1

[root@localhost client_1]# rm -rf file2

[root@localhost client_1]# echo "data no.4">>file4

然后来看看merged/client_2下是否有变化:

同时再看看lower层是否发生变化:

结论:lower层没有发生变化,同时以lower为基础的其他镜像也没有发生变化,这就是容器镜像的基础镜像不可修改,且不会影响其他容器中的数据的表现。

在看看上面的数据修改最后写到哪里了?

进入client_1/upper目录下,查看:

这时候发现,文件发生了变化,这就是镜像的修改会写入到upper层的表现。

看看merged发生了什么?

merged层就是最后的展示层,和upper层不一样,在这里看不到被删掉的file2,但是在upper层是可以看到的,只是被遮住了,这个是unitfs的whiteout功能。

挂载后,work层会新创出一个work目录来,这个目录没有什么变化,网上查了一下,有个人是这么解释的:

The workdir option is required, and used to prepare files before they are switched to the overlay destination in an atomic action (the workdir needs to be on the same filesystem as the upperdir).

当把挂载的文件卸载后,有什么变化?

这时候发现,所有的修改都还存在。

 

标签:容器,workdir,overlay,upperdir,实践,client,localhost,镜像,merged
来源: https://www.cnblogs.com/yftyxa/p/16063808.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有