Docker文件系统的分层与隔离

上传人:沈*** 文档编号:92010840 上传时间:2022-05-18 格式:DOCX 页数:3 大小:77.25KB
收藏 版权申诉 举报 下载
Docker文件系统的分层与隔离_第1页
第1页 / 共3页
Docker文件系统的分层与隔离_第2页
第2页 / 共3页
Docker文件系统的分层与隔离_第3页
第3页 / 共3页
资源描述:

《Docker文件系统的分层与隔离》由会员分享,可在线阅读,更多相关《Docker文件系统的分层与隔离(3页珍藏版)》请在装配图网上搜索。

1、Docker文件系统的分层与隔离M教师:Docker 的很多特性都表现在它所使用的文件系统上,比方大家都知道docker的文件系统是分层的,所以它可以快速迭代,可以回滚。这个回滚机制跟github很像,每次提交的时候都会有一个id, 回滚就是跟据这个id来操作的。M教师:Docker所支持的文件系统有以下几种:Aufs、devicemapper、btrfs和Vfs,其中前三种是联合文件系统,可以支持分层,VFS 不支持。平时用的最多的是aufs 和devicemapper。M教师:先介绍一下Aufs,Aufs(advanced multi layered unification filesys

2、tem), 直译过来就是高级分层联合文件系统,做为一种Union FS ,它支持将不同的目录挂载到同一个虚拟文件系统下。M教师:这个怎么理解呢,通过一条命令我们来看一下:mount -t aufs -o br=/tmp/dir1=ro:/tmp/dir2=rw none /tmp/newfsM教师:大家有条件的可以一起做下实验,方便理解,-o 指定mount传递给文件系统的参数;br 指定需要挂载的文件夹,这里包括dir1和dir2;ro/rw 指定文件的权限只读和可读写;none 这里是挂载的设备,而没有设备用none表示。M教师:为什么要有只读和可读写两种呢,因为docker在启动容器的时

3、候就会用到这两种,而上面这个例子是模拟这个docker文件系统模型。问:启动docker的时候,对硬盘使用只读,意义在于什么?答:这个问题很好,一个image可以启动多个container,这时候会有一个问题,如果每个container对大家共有的局部都有可写的权限,就会出问题。所以docker启动的时候会加载镜像的文件系统那层是只读的,然后每个contianer 获取自己的可读写的层,如果container要修改只读层的文件,那么该文件就会从只读层提取到读写层。只读层的文件就被读写层的文件覆盖了,但只读层的那个文件依然存在 这个就实现了文件系统上的隔离。问:就像我们写程序抵触共享的东西不变,

4、只是利用这个共性来底层共享?答:是的。问:加那个none是干什么用的?答:none 这里没有设备,用none表示,其实是没有意义的。但命令要求要有一个设备,这条命令中设备是none 问:这个命令是在容器里执行的吗?还是在宿主机?答:容器。M教师:继续咱们的分享,刚刚实验的结果是什么样子呢,就是把/tmp/dir1和/tmp/dir2 合并之后挂载到/tmp/newfs,如果这时在/tmp/dir1 下创立一个文件a,/tmp/dir2下创立一个文件b 那么 在/tmp/newfs 会看到a,b 这两个文件,这就是联合,并且a文件是只读的。M教师:如果有一样的文件那么以先挂载的为准,后面挂载的操

5、作会被忽略掉。大家可以想像一下,我每做一次操作都相当于去挂载一个新的目录,这样所有的操作就保存下来了。当然实际情况并不是每次操作都去挂载。当container 发生改变的时候,并且我提交commit 才会重新挂载一层。问:比方mkdir test 这也算是重新挂载了一层?答:docker有一个命令docker commit,执行这个的时候会。M教师: 可能还会有一些不理解,下面用实际的docker 镜像来举个例子。大家启动一个container 之后,执行 docker save,可以把container保存成镜像。例如:docker savecloud_jiankongbao:01.tar

6、cloud_jiankongbao:01 其中cloud_jiankongbao:01.tar是镜像的名字,后面的cloud_jiankongbao:01是这个container的ID,可以看到,保存下来的是tar 包。 不是.iso文件_M教师:镜像解压之后是什么呢,我们来看一下:ls . a005304e4e74c1541988d3d1abb170e338c1d45daee7151f8e82f8460634d329d9bde94c518a16a886514758b6b4431200145ecd58e30c5633ac3c0256544d77f1b10cd842498c23d206ee0cb

7、eaa9de8d2ae09ff3c7af2723a9e337a6965d639fb9cc58bde0c0a8fe53e6fdd23898e45041783f2d7869d939d7364f5777fde6f里面有四个目录,其实分别是4个docker的ID,每次使用docker commit 提交对docker的修改之后就会产生一个新的id,就是通过这个ID实现对镜像的回滚。M教师:这4个目录之间是有关系的。这个关系可以通过docker image -tree 来查看。docker images -treef1b10cd84249 Virtual Size: 0 B fb9cc58bde0c V

8、irtual Size: 203.1 MB a005304e4e74 Virtual Size: 203.1 MB d9bde94c518a Virtual Size: 1.957 GB Tags: cloud_jiankongbao:01M教师:每个目录下有json layer.tar VERSION 这三个文件,我们现在只研究他们的结构,所以只看layer.tar 这个文件。M教师:我们到一个目录下把layer.tar 解压一下dfb9cc58bde0c0a8fe53e6fdd23898e45041783f2d7869d939d7364f5777fde6f;tar -xflayer.tar

9、;lsls fb9cc58bde0c0a8fe53e6fdd23898e45041783f2d7869d939d7364f5777fde6f/binetcjsonliblost+foundmntprocsbinsrvtmpvardevhomelayer.tar lib64 mediaopt root selinux sys usr VERSION问:为什么会提交四次?答:提交4次是我们自己提交的.M教师:在使用docker的过程中我们需要保存自己的修改,docker commit 执行完之后就把container中的容回写到镜像中了,就相当于加了一层文件系统,每次提交后就生成了一个新的镜像。4

10、个ID是4次提交的镜像的ID,这4个ID 其实相当于一个镜像的4个tag。我们再看一下4个镜像ID的系统:f1b10cd84249 这个镜像是初始镜像,大小为0fb9cc58bde0c 这个镜像是在f1b10cd84249根底上创立新的镜像;a005304e4e74是以fb9cc58bde0c为根底创立新的镜像,是树状继承的关系;M教师:我们再看一下不同ID目录下的bin 目录。ls a005304e4e74c1541988d3d1abb170e338c1d45daee7151f8e82f8460634d329/bin/gtar tara005304e4e74只有两个文件,fb9cc58bde

11、0c包括了大局部bin下的文件,对应的场景是 fb9cc58bde0c,是装好操作系统, 然后我又装了tar这个工具。docker commit提交之后,就是a005304e4e。问:可以认为fb9cc58bde0c是一个最小化的OS答:可以这么理解。M教师:最后简单说一下devicemapper,回到最开场说的,docker支持多种文件系统。devicemapper是利用了Snapshot 和Thinly-Provisioned Snapshot两种原理,将多个快照挂在同一个卷下从而实现文件系统的分层。这里的快照技术其实就是vm中的快照。M教师:刚刚说的autofs 是将不同的目录挂到一个虚

12、拟目录,devicemapper 就是把多个快照挂载到同一个卷下,不过使用devicemapper 的话,一个container的大小最大只能是10G,启动docker daemon时用参数-s 指定: docker -d -s devicemapperM教师:当容器基于镜像启动之后,每个容器都会获得自己的写读可写的文件系统层。原镜像的那局部文件系统是只读的,从而实现每个容器的在文件系统上的隔离。问:autofs 最大一个container是多大?答:没有限制,直到物理效劳器没有资源,但通常不会将数据库和LOG保存在镜像中,所以也不会写的太大,因为docker本身是轻量级的。M教师:平时大家都在说dokcer 是弱隔离的,因为他没有隔离的很彻底,比方核是跟大家共用的,跟宿主机共用同一个核。SELinux、 Cgroups以及/sys、/proc/sys、/dev/sd*等目录下的资源是与宿主机共用的。如果要隔离的彻底那就是VM了,而且如果dockers要想实现这些隔离就必然要牺牲一下现在轻量级的特性。M教师:好吧,今天的分享就到这里了,大家!3 / 3

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!