Docker文件系统的分层与隔离.docxVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

Docker文件系统的分层与隔离

题,如果每个container对大家共有的部分都有可写的权限,就会出问题。所以docker启动的时候会加载镜像的文件系统那层是只读的,,然后每个contianer获取自己的可读写的层,如果container要修改只读层的文件,那么该文件就会从只读层提取到读写层。只读层的文件就被读写层的文件覆盖了,但只读层的那个文件依然存在这个就实现了文件系统上的隔离。

问:就像我们写程序抵触共享的东西不变,只是利用这个共性来底层共享?

答:是的。

问:加那个none是干什么用的?

答:none这里没有设备,用none表示,其实是没有意义的。但命令要求要有一个设备,这条命令中设备是none

问:这个命令是在容器里执行的吗?还是在宿主机?

答:容器。

M老师:继续咱们的分享,刚才实验的结果是什么样子呢,就是把/tmp/dir1和/tmp/dir2合并之后挂载到/tmp/newfs,如果这时在/tmp/dir1下创建一个文件a,/tmp/dir2下创建一个文件b则在/tmp/newfs会看到a,b这两个文件,这就是联合,并且a文件是只读的。

M老师:如果有相同的文件则以先挂载的为准,后面挂载的操作会被忽略掉。大家可以想像一下,我每做一次操作都相当于去挂载一个新的目录,这样所有的操作就保存下来了。当然实际情况并不是每次操作都去挂载。当container发生改变的时候,并且我提交commit才会重新挂载一层。

问:比如mkdirtest这也算是重新挂载了一层?

答:docker有一个命令dockercommit,执行这个的时候会。

M老师:可能还会有一些不理解,下面用实际的docker镜像来举个例子。大家启动一个container之后,执行dockersave,可以把container保存成镜像。

例如:

dockersave

cloud_jiankongbao:01.tar

cloud_jiankongbao:01

其中cloud_jiankongbao:01.tar是镜像的名字,后面的cloud_jiankongbao:01是这个container的ID,可以看到,保存下来的是tar包。不是.iso文件^_^

M老师:镜像解压之后是什么呢,我们来看一下:

ls.

a005304e4e74c1541988d3d1abb170e338c1d45daee7151f8e82f8460634d329

d9bde94c518a16a886514758b6b4431200145ecd58e30c5633ac3c0256544d77

f1b10cd842498c23d206ee0cbeaa9de8d2ae09ff3c7af2723a9e337a6965d639

fb9cc58bde0c0a8fe53e6fdd238982d7869d939d7364f5777fde6f

里面有四个目录,其实分别是4个docker的ID,每次使用dockercommit提交对docker的修改之后就会产生一个新的id,就是通过这个ID实现对镜像的回滚。

M老师:这4个目录之间是有关系的。这个关系可以通过dockerimage--tree来查看。

dockerimages--tree

└─f1b10cd84249VirtualSize:0B

└─fb9cc58bde0cVirtualSize:203.1MB

└─a005304e4e74VirtualSize:203.1MB

└─d9bde94c518aVirtualSize:1.957GBTags:cloud_jiankongbao:01

M老师:每个目录下有jsonlayer.tarVERSION这三个文件,我们现在只研究他们的结构,所以只看layer.tar这个文件。

M老师:我们到一个目录下把layer.tar解压一下

dfb9cc58bde0c0a8fe53e6fdd238982d7869d939d7364f5777fde6f;tar-xflayer.tar;ls

lsfb9cc58bde0c0a8fe53e6fdd238982d7869d939d7364f5777fde6f/

binetcjsonliblost+foundmntprocsbinsrvtmpvar

devhomelayer.tarlib64mediaoptrootselinuxsysusrVERSION

问:为什么会提交四次?

答:提交4次是我们自己提交的.

M老师:在使用docker的过

文档评论(0)

175****4659 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档