00:00
欢迎大家继续收看上硅谷的Linux云计算视频。大家好,我是汪洋老师。那上节课呢,我们学习了我们的镜像的do,镜像的相关的一些特性。包括与传统镜像它的不同点,对吧?好,那这节课呢,我们就要去学习构建一下我们的倒库镜像。那很多大家可能会有疑问对吧,那我们在仓库里去下不是就可以了吗?那如果你想得到的真相我们仓库里并没有,那这时候你应该怎么办?其次是别人做的镜像到底有没有在里面留有后门,你又怎么知道呢?所以在正常的生产环境中,很多一些镜像都是我们自己去构建的,而不是通过我们的,包括仓库。当捣咕商户也会有它对应的目的或者用途。总而言之,就是刀和镜像的制作非常重要。不管是从安全性角度考虑,还是从后面的适用性角度考虑。
01:03
那所以这节课呢,我们的主要目的就是去构建我们的。到镜像。那如果想得到倒钩镜像呢?我们有两种方式,第一种方式,从容器转换至镜像。也就是他俩是可以互相转换的,镜像可以转换为容器,对吧。我们使用的方式是不是就是直接通过run到run对吧,可以从镜像转换为容器。容器其实也是可以转换为镜像的,那通过的命令叫commit。通过的命令叫commit。先跟上我们的容器的ID号杠T,指定它的标签号即可。第二种方式呢,是通过do fill,也是我们在dock里的重点难点。你可以理解为它是创建我们刀客镜像的语法。我们通过它指定的语法以后。书写完成后,它可以根据我们的语法去帮我们去生成对应的。
02:04
刀客镜像。理解起来稍微有点复杂,但是它非常重要。那首先我们一个一个去看对吧,怎么去从容器转换成镜像以及。到个到底有什么特点对吧,一个一个来。那这节课给大家做演示呢?是我们可以拿一个我们的斯诺去做。我们先打开。我们可以访问一下网易蜂巢。这里给大家说明一个特性,就是镜像如果能够正常运行的话,它需要拥有一个工作在。前台的守护。进程。这句话。重要等级满天星,希望大家注意一下重要等级满天星。没有之一,它非常重要。
03:01
什么叫工作在前台的守护进程至少一个。也就意味着如果,如果doer认为他现在没有工作,在前台的守护竞争。他会认为我现在起来就是摆起来没有任何意义,那它就会自动自动退出。也就意味着我们必须要他拥有一个守护在前台的啊,工作在前台的守护进程。有很多方式对吧?比如NNS可以在我们的配置文件中,通过我们的DEMO配置,让它变成由后台转为前台。包括很多。比如买。默认的MYSQLD,它是不是就是一个MYSQLS,它是不是就是一个标准的前台的守护进程呢?所以在容器内部一定要让它拥有至少一个的守护竞争工作的前台的守护竞争需要大家注意一下。那举个例子,比如我们现在去下一个我们的圣S给大家看一下。
04:06
刀客。刀客po,我们去下一个圣S。这个圣的S呢,相当于就是。官方的对吧,看这里library官方打的,官方打的用户,那这个默认的官方的呢,相当于是一个底层的基础镜像,怎么去理解呢。金属镜像里主要集合的是一些我们的工具以及内库。我们都知道在镜像里面,我们需要去安装一些环境,环境上面部署程序对吧,然后我们把它一打包。那最作为最基础的内核呢,我们去共享,但是内核上面是不是还有一些不同的lab库,以及周边的工具。那这些工具呢?我们就把它叫做基础镜像,基础镜像bicycle in麦对吧,基础镜像,基础镜像可以自己通过本身的操作系统打包得到,直接踏打包就可以得到。
05:02
但问题来了,你打包到里面有很多一些不必要的工具,那就会造成这个基础镜像过于庞大。也就意味着你最终做出来的这个镜像也会过于庞大。你说简单啊,我自己去对里面的一些不用的一些命令去做优化呗,那这个步骤是相当耗时的,对吧,你需要一点一点去实验。所以呢,官方,圣诺S官方以及红帽官方,包括所谓的do官方都给我们提供了对应不同版本的基础镜像,我们就通过这种方式下载可以得到。它是一个最精简的这么一个操作系统。那我们去运行它一下,首先现在后面后台肯定有很多的一些不同的,看到了吗。容器对吧,那我们现在都把它删了。Do RM-FF代表强制删除,对吧?因为只有关闭的容器才能被删除,我们使用嵌套语法,昨天教过的,对吧,Do PS。杠A、杠Q3组全部容器,好,我们再do个杠A,所有的容器是不是都没了,我们现在再去启动。
06:06
首先,刀客。Images,我们看一下我们刚才下载的镜像叫什么。Do RA、杠杠、name,我们把它叫做T,测试一下。圣诺S冒号6.8是不是代表它的唯一匹配啊?两部分需要注意哈,两部分加一起唯一索引对吧,好启动。那我们在do PS-A我们看一下。看到了吗?已经退出了。原因是什么?看这里come on come on代表的是这个容器在启动的时候执行的命令,它执行的命令是并下的败。结果呢?冰箱的败绩并没有对应的能够。得到我们这么一个前台守护终端的这么一个。作用,所以他就会退出,因为他现在没有前台工作的进程。那这句话大家先放在心里,因为我们还没有学到高费用,所以我现在没办法让他能够启动一个位于前台工作的进展,所以这个镜像呢,我们现在用不了。
07:07
你一启动它就关闭。那怎么办呢?我们可以去下载一些已经封装好前台守护进程的这么一些技术镜像。那比如我们去搜索一下网易蜂巢,这是我们的网易云给我们做的这么一个镜像仓库,它也是镜像仓库,需要大家注意一下,只不过不是到官方的而已。啊,我们去登录一下我自己的。登录进来以后点产品服务。这里会有一个镜像仓库,看到了吗?点击镜像仓库。
08:00
然后在这里呢,会有一个叫做镜像中心,点击镜像中心。那这样的话你会发现,诶,有点类似于我们之前看到的dock官方的这么一个仓库了,对吧,这是王御云开源的这么一个仓库,我们在这里直接搜索圣S。你会发现有个叫library s和public center s library center s呢,里面是最精简的,网易云做的一个较精简的这么一个经销仓库。Public呢,里面融合了一些很多的一些调试工具,比如w gate啊和我们nes啊都有,那所以建议大家在生产环境中使用这种,虽然它更小,虽然它更小,但是一旦你的里面的服务出现问题以后,不容易通过工具去排查,所以建议大家选择public。并且public library呢,跟我们刚才下载的官方的中统还是一样,他没有工作在前台的守护进程,所以一启动就会退出,而public在这里给我们封装了一个东西叫做。Supervisor。
09:01
那这个东西呢,是工作在前台的这么一个进程,所以我们一启动它就能正常工作了,好,我们复制一下。看到这里有下载地址对吧,我们复制一下。那当然底下还有不同的版本,比如702版本的。6.5版本的,6.7版本的,希望大家注意一下。对于现在来说呢,七点多版本的这么一个斯诺拉式环境呢,它由于我们的。由于我们的CD扛出的问题,CD的问题。我们需要通过一些特殊的手段才能让它正常的运行CMD。所以在最新版本中7.6版本中已经被改善了,但是七点版本我建议大家不要去用,用的话现在最好的使用版本是六点几版本。我们现在把这个下载地址复制一下,这是6.7的带兔子的对吧,也就带我们工具结合的,你下载一下。还是那句话,需要大家注意一下七点。
10:03
零的到我们的7.6之间呢,不要去使用它,会有对应的自己的CMD的管理问题。建议大家使用六年级版本的。如果非要用的话,用67.6的这么一个版本的状态。当然,如果你在七点几版本中不需要使用到我们CD的话,那你就可以继续使用。不然的话,我们再去将这个7.0~7.6之间的这些圣诺再去引,引用的话,我们需要赋予它的权限太大,不太安全。并不是说做不到。还有就是我们这一个网易云的网易工厂呢,是放在我们的国内的,你会发现它是华东区的,对吧,所以它的下载速度是非常之快。如果你想用一些我们的。
11:03
进像仓库的话,建议大家也可以在网易封城自己去注册一个,当然我们后期也会带大家自己去构建,对吧,那自己管理的才是最好的,这肯定的。那我们继续往后看,那这个镜像呢,已经下载好了,我们把这个镜像复制一下,这就是我们的镜像。这是我们的镜像名,对吧,这是我们的。版本号。需要大家注意一下,你会发现这个现象,诶,怎么长那么长啊。镜像会有对应的命名方式测试我们的镜像。镜像的名。也就镜像名对吧,Public public代表的是我们的仓库名称。前面呢,这个代表的是我们的从哪个仓库地址下的。hub.c点163.com这就是我们的网易云的仓库地址对吧?所以加在一起会得到这么一个属性。那如果是官方的,我们看一下do images。你会发现它只有什么。我们当时下载我们的圣诺I的时候,我们往上翻有。历史记录没有。
12:01
看这里只有library,原因是什么?这是我们的镜像名。冒号6.8已经写了,对吧?那为什么加了一个library呢?这是官方的仓库名称,镜像仓库的名称前面其实还有一个。前面其实还有一个叫做什么hub.do.com,那这里为什么没有写呢?因为这是默认仓库,官方的默认仓库,所以就可以省略了,那像这种网易的第三方仓库,你必须要标识了。能理解我的意思吗?不然你也下不下来好。我们把它复制一下。高科杠杠内姆给他起个名字,比如就叫圣罗阿。六吧。我们起个MYSq吧,我们在里面运行一个MYSQL数据库,好,然后呢。嗯,杠D放在后台运行。镜像仓库名称是他。就这样就够了,好。Do PS,杠A,你会发现这里是不是已经有个叫买S的容器正在运行了up状态,对吧?
13:02
那接下来呢,我要在里面去安装一个MY磁,并且正常使用。我们先进去,进去的命令就是dock eec杠、it。并已下达。Dash。对吧,后面跟上我们的my circle,也就是我们的容器名,当然容器名要加在我们的杠,It和并之间,也就是命令之间。进入以后ya-one install,买circle,买circle-serve。这一步相信大家都能看得懂,对吧?这相当于是什么?先进入我们的容器内部,然后呢去通过下去安装我们的MYSQ以及MySQL server。好开始安装了对吧。需要注意一下,你进来以后,你只能运行当前基础镜像版本的这么一些命令。你别这里是我们的下载的是圣S系列,对吧,你搞一个什么所谓的ipd去安装肯定是不行的,对吧?好,那接下来我们就启动。
14:03
My d start。切割config买这个D啊。当然,那接下来呢,其实切个con my d on在这里没有特殊含义,我们后面会给大家去解释解释,My me-u root passord,密码123,赋予初始化密码对吧?然后买SL,杠u root,杠P123。那create database。比如我们的上硅谷。那show database查看一下我们的数据库。已经有了对吧,那这是不是就代表我们的。MYSQ已经安装成功了。那接下来呢,我就可以把它封装成一个买circle的镜像了,我们退出。好,退出容器以后,我们发现这个G,退出这个容器以后,我们发现这个容器还在运行,原因是什么?看到这里。
15:01
开机运行的命令是us b下的superso,它是一个前台的守护进程,所以它不会退出。如果他没有潜在守护技能的话,他现在就应该去退出了,需要大家注意一下,我们后期会给大家演示去证明。首先呢,我们看一下我们后台运行的这么一个容器。然后呢,现在呢,我们要把这个MYSQL去转换成我们的镜像了,对吧,那。用到的命令呢,我们之前也说过了,叫do commit,先写我们的容器名,再我们要命名的容器名称叫MYSQL5.1。这个是我们的当天容器的唯一索引,当然你也可以写他的ID号。后面的买呢,代表是这个镜像的名称冒号5.1 5.1代表的是我们的版本号,那时候我们就可以回车创建了。那这时候就开始停止了,对吧。这里已经抛出了一个ID号,我们docker images,我们看一下。这里就会多了一个五,买S扣5.1,看到了吗?买S5.1,最终大小七百48兆B好。
16:03
那这样的话,我们就可以从它就启动了,那do run,杠杠name,比如就叫my circle。干嘛?然后呢,杠D放在后台运行,这是镜像的ID号,我们去复制一下。Do PS-A,看到了吗?已经正常启动了,对吧?拉好,那我们再进入这个容器,我们看一下do ex e。杠I这个镜像执行的命令是并下的bash。进来以后呢?My my d start。数据库已经启动了,对吧,买了这个杠u root-P123。然后。Show database。这是不是就是我们之前创建的这么一个数据库啊?那有些人可能会发现一定问题了,我们之前在创建word press的时候还记得吗?创建的时候我们只要一启动这个word press已经正常工作了,我并没有去启动所谓的数据库,并没有启动对应的阿帕奇。
17:09
原因是什么呢?卡密只是把容器当时的状态保存为镜像,但是他不知道。当你再去从镜像。运行成容器的时候,他要怎么做?所以他依然用的是原来的启动命令。那你只有把这条启动命令换成什么启动数据库的命令,那这样的话,容器再去被启动的时候,它才会去执行这条。数据库的启动命令,那这样的话服务才会正常的启动。所以卡密的这种方式呢,比较贴近于我们保存状态,比如备个份啊,当然如果你的构建比较复杂,在do费里写,你觉得太复杂了,你也可以通过卡密的转换。那最终其实都要去移交到我们等会要讲的东西上到中来,因为只有在do费中我们才能把它封装启动运行的时候这个脚本。
18:06
那这是我们的刀的卡的转换对吧。那接下来我们继续往后。讲解我们的dog。
我来说两句