00:00
欢迎大家继续收看上硅谷的Linux云计算视频。大家好,我是王洋老师。之前的课程中呢,我们已经学习过了我们的刀客的单容器管理,对吧?那从此也可以发现我们的仓库镜像以及容器之间是有很大联系的。那这节课呢,我们就去拿我们的镜像和仓库给大家去做对应的讲解。今天的课程呢,我们主要分为三个部分,我们先讲解我们的刀客镜像的一些特性,以及他工作的一些相关原理。然后第二个是dog。那很多人在一开始听dog fair的时候,可能不知道它是干嘛的,对吧?那其实dog就是一种固定式的语法,它可以帮我们去生成我们想要去构建的这种金像。那第三个呢,就是我们的刀仓库的构建。那这就是我们的三个不同的。分类。那首先呢,我们先看第一个dock镜像管理,在这章里呢,我们会讲解一些dock的相关的一些特性。
01:07
那话不多说,我们继续往后看。第一个就是我们需要了解的东西,就是。容器创建时候需要指定镜像,这个我们在do run的时候也给大家去看到了,对吧?Do wrong什么什么什么,有很多一些属性,比如指定我们的刚刚内幕啊,指定我们的杠P啊,指定我们的杠V啊等等,对吧?好,那最后会跟我们的一个镜像名称。那每一个镜像都有唯一标识的ID号,和容器ID号一样,默认128位。那当然,正常情况下,如果我们不加杠杠no t的话,它显示的都是我们16位的缩写形式,需要注意一下。还有就是镜像名与版本号两部分组合成唯一标识。那这个我们之前也说过对吧,如果我要删一些容器的话,或者是指定一些容器去运行为。啊,删一些镜像的话,或者是删除一些。
02:02
呃,指定一些镜像成为容器的话,我们都需要通过镜像名加版本号的方式去固定匹配到唯一的这么一个镜像号上,也就是唯一索引对吧?两部分加一起才能当组件,需要大家注意一下,好。如果省略版本号,默认使用最新版本的标签拉,这里需要注意一下。比如我们之前下载过一个叫做NG的镜像,还有印象吧,那我在下载的时候,我只写的是NG,结果下载的时候它会诶匹配一个拉。这代表什么含义呢?正常情况下,我们应该下载的方式是NG。然后冒号1.2版本。那这样的话,我们是通过。镜像的名称加上镜像的版本号,去唯一索引去下载,结果我现在没告诉他这个所谓的版本号,那系统呢,就会拿拉的标签去做补全。拉标签是人为打上的这么一个标签号,他在我们的do里代表的是最新稳定版,需要我们注意一下,这是它的一个默认规则。
03:08
这是我们第一部分需要注意的,就是镜像名加版本号主义组成标识符,还有就是默认版本标签为拉。对吧,那当然镜像还有一个唯一的。所以。也就是com image ID号,也就是这两部分,第一部分,第二部分,这两部分都可以当做唯一索引去用,需要大家注意一下,好,这是第一个非常重要的东西,第二个。进项的分成。我们之前说过对吧,我们在下载一个镜像的时候,你会发现,诶,好多个层级,再去下,每一个层级有不同的大小,还记得这个过程吧,好,那意味着镜像是有不同的分成去组合成为的。那既然它是一个散的,那是通过谁呢?就是通过的是联合文件系统,我们把它叫ufs。U。
04:00
UNFSTEM对吧?我们简称为UFS,可不是unix f STEM跟我们的的unix文件系统是不一样的,需要大家注意一下,这叫联合文件系统。将各层的文件叠在一起,也就意味着我们通过这个文件系统把它们组合在一起。以后对外表现为。一个整体。这是第二个非常重点的东西,对吧?好,那接下来我们继续往后看它的引导过程。那你会发现我们的容器在启动的话非常之快,对吧,我们昨天也去启动了,我们DB和我们的,呃,阿帕奇那启动速度都非常之快,他是怎样进行引导的呢?首先。分这么两个东西,如果是传统操作系统的话,传统操作系统的话。是由boot FS。它是一个最基础的文件系统,对吧?用于引导系统的文件系统,包括我们的lod以及kel。容器启动完成后会被卸载,以节省资源。
05:00
那。这一步骤呢,其实跟我们的传统。包括我们所谓的刀客中都没有区别。就是我们最。传统这种虚拟化,或者是哪怕是一般的默认的操作系统,它也是这样工作的,也会有boot FS。容器和我们的传统不同一点在于root FS的应用。好,位于boot FS之上,表现为刀口容器更稳定的系统,那如果在传统系统里呢,它也是更稳定系统,就是root FS。好,那有什么不同点呢?在传统模式中,系统启动内核挂载root FS将挂载为只读模式,质解完成后挂解为挂载为读写模式,也就意味着我们牵引到的是boot FS,需要大家注意一下哈,Boot FS的主要目的就是识别上层文件,系统加载内核对吧?加载完成以后会引入我们的root FS。Root FS才会有我们的系统内核的一些指令在里面。
06:02
那有指令以后,才能对整个操作系统完成质检,质检完成以后才把它有只读,有只读改为读写。只读改为读写以后,那我整个操作系统就能正常工作了,对吧?这里是需要注意的,那如果是dock的话,Root FS从头到尾只能是只读。只能是制度需要大家注意一下,然后呢,通过挂载在上层的一个可写层进行写入操作。那这时候可能有些疑问对吧,咱们回到第一天讲解的时候。我说了,哎,这是一个镜像。镜像上面呢?我们会共享给不同的容器。容器上面可能会有一些我们的系统的一些相关的lab库,然后上面我们加了一个可写成对吧?好,所以在我们的容器内部所有的写入都是被写到可写成里的,下面的所有的操作都不能去写入数据。
07:05
哪怕你是笑。在容器里像跟下去写数据,其实也是在这个可写成里写的,而不是真正的。Root FS。需要大家注意一下。那这是我们的一个区别对吧,那我们继续往后看。第二个特性,已有的分成只能读,不能修改。也就意味着现在我有很多成绩。镜像有很多层级,或者是我们容器也有沉积,对吧?好,那只要是位于上层的下一层,它都不可能再被修改。你说诶,如果这是镜像的话,这一层不是已经固定以后不也不能修改了吗?这句话没有错,但是它被加载到容器以后,它是不是就不是成为最上层了?最上层是谁啊?最上层是谁啊?最上层是我们的可写层。需要大家注意一下。可携程。
08:03
对吧?好,这是第一个特性,第二特性,上层镜像优先级大于底层镜像,这句话怎么理解啊?举个例子。我现在做了一个基础镜像。这个镜像里面命名的是根下的有个1.txt文件,内容为A。然后我拿这个镜像在上层做了一个,拿它做底层镜像,在上层做了一个新建镜像,我把1.txt里面的A改成了B。然后我拿这个镜像运行为了容器。这现在是一个容器了,那容器内部我打开1.txt的话,发现的内容是B。原因是什么?上层优先级大于下层?那当然我们在这边也能看得到,对吧。看到了吗?布TFS科诺对吧?上层呢,是我们的最基础的镜像,是一个B镜像对吧?再上层呢,哎,还有镜像是添加了我们的基本的环境,添加了我们的阿帕奇,然后再上一层是VI Apple,也就是写入层,这一层属于我们的容器层,看到了吗?这就是我们所谓的这么一个镜像的特点。
09:12
内容比较多,比较繁杂。总结一下第一个。ID号image ID号镜像加镜像加版本号,这是我们在镜像里面的两个唯一索引。两个唯一索引。那如果你不添加版本号,默认使用最新版LA的标签补充。这是第一个特性,第二个特性。镜像通过联合文件系统叠加在一起。第二个特性,第三个特性。Boot FS类似于我们传统操作系统,正常引导,正常卸载root FS。在传统模式中,由只读改为读写,在dock中始终只读,然后通过我们的联合文件系统挂载一个新的层级,这个层级才是真正的写入层。
10:05
下一个特性分成。已有的分针只能读,不能修改。再一个特性,上层镜像的优先级大于底层镜像。这就是我们在dota中的镜像里面的一些特性。有些呢是比较难理解的,尤其是这一部分,如果前面的系统引导管理没学好的话,这这节课可能听到云里雾里的,毕竟咱们现在讲的不是一个基础课程,对吧?这种东西不可能再掰开揉碎了再去讲,我们讲的现在都是刀客的相关特性。那好好的去把它给理解一下,那如果题目太懂的话,再去回忆一下前面我们的引导课程。那这节课呢,我们就先讲到这里,我们下节课再见。
我来说两句