00:01
大家好,欢迎大家继续收看上硅谷的Linux云计算视频,我是汪洋老师。在之前的课程中呢,我们已经学习过了,怎么去呃,将一个服务去容器化的部署,对吧?那只是简单的看了一下它的相关的一些命令,仅此而已,那这节课呢,我们就详细的去学习它的一些相关的容器方面的部署命令。好,那在这一节呢,我们会分为两个篇章,第一个篇章会讲解我们do客的基础概念以及相对应的命令,第二章呢,我们会去给大家演示一下怎么通过我们的三剑客之一的do客,三剑客之一的dock compose去进行我们的服务的整体化管理。那我们先看第一个篇章,Do的技术概念和我们的相关命令。首先对于刀来说呢,三个重要概念,又是这三个重要概念对吧,三要素。所以我一直在强调它的重要性。
01:00
他的三要素是。贯穿在我们整个学习的知识树上的。好,第一个仓库,第二个镜像,第三个容器。还是那句话对吧,容器是镜像,运行完成以后,得到了正在运行的运行环境。镜像是封装好的运行环境,但是它是死的,对吧?镜像可以被上传到上,上传到仓库里,仓库里可以搜索出来对应你想要的镜像,当然它它得有对吧?好,那对应的命令呢,可能就是我们学习过的,就是do run。刀刃是我们运行一个容器。刚刚内幕给这个容器起一个名称,名称叫my word press。那刚刚link做一个链接关系对吧,可以写在我们的ETC下的host文件中,写上它的对应链接关系。杠P进行我们所谓的端口映射,左边是八零,八零,右边是八零。
02:00
好,也就是左边是宿主机的8080端口,右边是容器的八零端口。杠D放在后台运行。使用的镜像名称是word press。镜像名。那所以我们也可以看出来,Dock的基础的命令用法就是dock关键字加上命令的关键字可能是run啊,可能性image啊,可能是啊,对吧,这些参数我们在后面会讲加一系列的其他的辅助参数得到。那一个一个去看吧,首先第一个叫do for。Do info守护进程系统的资源设置,我们过来看一下,首先去连接一下我们的。虚拟机。In four,好。在这里我们可以看到有很多的一些资源,对吧,包括很多的一些信息。好一个一点一点去看吧,首先第一个。容器,当然我在这里只讲一些比较重要的,对吧,运行的容器。
03:04
Image有几个镜像?然后呢,当前的版本号。在这里需要非常重点的一点就是存储驱动overlay。如果你这里写的是DM的话,代表你当前的内核版本比较低。DM和O类有什么区别呢?在后面我们会讲,你可以现在简单的理解为O类远比DM更稳定以及更强大。这就够了。以及当前的操作系统是文件系统是叉FS对吧?好,其他的就没有什么太重要的东西了,比如什么当前内核版本,系统版本啊,包括现在的总资源数啊。包括我们的家属的镜像站点的地址啊,这里都会显示出来,对吧,还是那句话。在这里其实你只需要去注意一下是不是overlay重组系统是不是overlay即可,以及你的版本号即可,其他的都不太重要,我们可以通过其他的命令去得到。
04:02
这是do info里比较重要的地方。第二个do search。也就是我们的索引。刀索引索引是什么呢?索引的是镜像,比如do such。回撤。那只要是NS相关的一些镜像都会被索引出来,对吧,那比如在这里会显示一堆的,比如镜像名。那这个就可以当做我们的下载的镜像名。我们把它放大一点,放全一点。我们再来看一下。镜像名N,包括底下还有一堆的乱七八糟的一些镜像,对吧,你会发现诶,他的命名为什么长一点。像这种前面没有前缀体的,一般都是官方镜像,像这代表的是这个用户下的这么一个镜像,像这种就不是官方镜像,能理解我的意思吧?好,以及镜像的说明,下载的次数,是否允许自动开启,也就是。
05:01
运让以后不需要去采用一些别的命令去让它运行。那这就是我们在命令行里怎么去索引一个镜像,建议大家去访问它的。官方站点的方式去得到对应你想要下载的镜像HUB do.com对吧。比如我们要去搜索一个Ning。在这里你会发现这是不是我们刚才看到那个镜像。底下是不是还会有一些说明信息对吧,以及一些简单的配置的运行方式,那下载地址是不是在这里啊,Do破ing,我们点击这里的复制。张这里粘贴一下,一回车他是不是就开始下我们的N镜像了,看到了吗?我们CTRC,我们现在不需要对吧,这是一个索引镜像的方式。比较简单对吧,好下一个。Do po do po是不是就是从我们的do的仓库去下载到镜像至本地?至本地,比如就像我们刚才下载的ningx,我们去下一下吧。
06:04
这是不是开始去匹配一个标签为拉的标签,因为我们现在没有加标签对吧,默认就是最新稳定版,它的代言词就是拉,然后开始去下载。第一层下载好了,下载第二层,下载第三层等等。我们稍等一下。好。我们去输入do images,我们可以看到我们现在的一些镜像。第一个是镜像名称,版本号,镜像的ID号,这里是16位缩写的,然后以及下载的这个镜像创建的时间,以及它的大小。那这就会有一个疑问了,有一个思考题了。我现在问大家,对于我们的到货镜像来说,它占用了多少资源?镜像大小占用了多少存储资源?你说这不简单了吗?他们几个值相加不就得到了吗?这就错了,原因是什么?你问我,我也不知道他占用多少资源,我们只能通过DF,也就是当前的本机的命令看他占用资源数。
07:03
为什么要这样说啊?还记得我们之前说过,镜像是分成的。如果有使用同一个成绩的镜像,就跳出下载,我怎么知道这里哪些镜像它们是共用的?你可别忘了,共用完整以后,它显示的依然是原完整镜像的大小数,并不是它共用的就不写了,所以这里得出的值是。大于或等于当前镜像空间的,因为万一他们一个共用的都没有呢,对吧,所以还是需要注意的,这个是一个概念,对吧,别人不会这样去问你,但是你要知道有这么一个事情存在。那下一个doc啊,Mi叫什么镜像的删除,那我们过来看一下怎么去删,比如这个hello word,我们当时说的是这个hello word,就是测试刀客是否安装成功的。但我在这里我都用半天了,对吧,Do肯定没问题了,那我是不是这个镜像留下来就没有什么意义了,我就可以把它删除了,叫do mi跟上我们的。
08:08
镜像的名称需要注意一下,镜像的名称不足以当做删除条件,还需要冒号加上它的版本号。原因是什么?一个镜像名称下面可能有很多个不同的版本。所以冒号版本号才是唯一索引值。或者。我们可以用镜像的ID号。你说这今天的ID号也太长了,写起来太费事了吧,所以我们可以不写全,一般写四位即可删除回车。看到了吗?是不是告诉我已经删除了。没问题吧,好。那这是我们的镜像删除,需要注意一下,如果有容器正在占用这个镜像,它是删不掉的。比如我们现在。Do PS,我们看一下这里是不是有一个DB容器和麦。
09:00
Word press这么一个容器在占用我们的word press镜像和me DB镜像,那我们去3MDB镜像我们看一下。Do I Mar的LA版本。看到了吗?是不是告诉我了,正在有我们的容器在占用这个现象不允许删除,这是合理的,对吧?好,接着继续往后看。Do PS。到个我们刚才是不是已经用过了呀。到个啊查看我们当前。运行的容器看到了吗?查看当前正在运行的容器。容器的。ID号依然是16位,完整版本是128位,依然是一个缩写,对吧。使用的镜像的名称,在容器运行的时候运行的脚本。那容器的什么时候创建的?容器启动了多长时间了?他是怎样做端口映射的?那以及容器的名称叫什么?
10:02
需要注意一下,Do PS只能查看到当前的。正在运行的容器,已经死亡的或退出的是查看不到的。比如我们去关闭一个容器dog stop,我们把这个DB。别关DB吧,关MY。关DB的话,MY也会关对吧,好。Stop my word,那这样的话我们再倒个看一下。是不是只有一个DB了?那word press去哪了?还是那句话,只显示当前正在运行的镜像,已经退出的已经关闭了,不显示,那怎么办呢?我们加一个杠A选项。那这样的话是不是可以看到哎,MY。一离出状态对吧。Excited,好,那这样的话,我们如果想开启的话,就把stop改成start即可。那我们再看一下是不是已经启动了。也就是stop和start是关闭镜像和。
11:01
啊,关闭容器和启动容器,需要大家注意一下。那run是不是就是我们创建这样的话,我们是不是就把一些常用的命令给大家讲完了,怎么去查看镜像啊,怎么去删除镜像啊,怎么是。查看容器啊,关闭容器啊,启动容器啊,那是不还没有讲删除容器啊。删除容器的命令叫do RM跟上我们的容器的ID号,当然它也可以,它类似于镜像,可以缩写或者是用容器的。别迷。推车。这里是不是告诉我了?说这个镜像正在运行,你移除不了,要想移除的话,你可以加个杠F,杠F代表false强制,那也意味着删除M只能删除已经停止了或退出离开的这么一些容器,正在运行的容器不允许你删除,相当于是一个误删除操作,对吧,防止误删除。那如果你下定决心了,我必须要删加个F,那这样的话我们看一下是不是word press就已经删除了。
12:07
这就是我们常见的一些命令。好,那命令其实还支持我们的赋值嵌套。变量解析,那给大家也也是一个比较常用的,比如我想把现在的所有的镜像。不能讲所有镜像一个对吧,应该是把所有的容器全部删除。把所有的容器全部删除,我们再去起一个。我们把这个waterplace再起回来,让它有多个。高可杠A,好,现在我们有两个不同的容器,看到了吧?我现在想把这两个容器同时删除,怎么办?我们。我们看一下命令dota PS,杠I查看的是什么?当前所有的容器对吧?加一个杠Q显示的什么?只显示他的ID号,看到了吗?只显示他的ID号。
13:01
那在前面。高RM-F。只看他是什么意思啊。是不是就是强制删除啊,所以我们拿一个。到了福括号,把它给括起来。也就是先执行内部体系,再把它通过负循环的方式交给他,那这样的话就是。两个同时删除do PS-A。看到了吗?所以命令与命令之间是可以嵌套使用的,后面我会有大量的这些手法给大家去展示,好,那这是我们比较常见的一些命令的使用用法,那接下来我们继续往后看。单一容器的管理命令,刚才是我们在全局化下用到的一些常见命令,对吧?那现在我们看如果去管理容器还可以用到哪些?首先我们先看一句话,每个容器创建后都会分配一个卡的ID号作为唯一标识。
14:01
这个ID号呢,完整版是128位。是128位,那一般来说系统只显示16位,你需要加个命令叫杠杠no t的方式可以查看完整版本。好,那后续对容器的启动,停止,修改、删除都可以通过ID号完成,或者是通过容器的别名完成,等同于组件对吧,两个都可以当组件。这个命令我们之前是不是已经用过了,但是加一个刚刚no创的是什么含义呢?给大家看一下有什么效果。Do PS,我们现在没有数据了,对吧,我们随便起一个。启用数据库。我的place。好,刀个杠I。那这样的话,我们再去杠A,可以看到这么一个情况,对吧,我们加了刚刚no创,你可以发现诶,他的ID号变成了完整的128位,所以这个命令其实大部分情况下是没有什么意义的,那。
15:10
知道它有什么含义即可,那接下来继续往后看,Start stop,关闭或启动对应的容器已经给大家演示过了,对吧,好。我们看一下。Do inspect跟上我们的容器的别名,比如叫DB回车。这样的话可以查看当前容器的详细的信息。有很多。比如他的当前容器的ID号,创建时间对吧,以及用的一些命令。包括它的一些挂载目录,现在我们可能还看不太懂,那往下翻你还会看到一个容器的IP地址,172.17.0.2,就是我们当前这个容器的IP地址。我们可以拼一下。
16:00
172.17.0.2能通了,对吧,那我现在用比较粗鲁的一种方式M-F,我去把DB给删了。那我再拼一下,不通了,肯定是他对吧,因为我们现在还没有教大家怎么去进去,所以现在只能用这种比较暴力的方式给大家演示,好,那我再把容器给起来。再起个地。
我来说两句