00:00
好,同学们,我们来继续,那么通过上一次的讲解呢,我们呢,已经完成了,我们用什么。命令直接添加我们的容器数据卷,那么说白了是不是就是我们的杠V啊,那么主要就是这个公式,那么接下来我们讲第二种方法用什么呢?Doer,那么好,首先这个时候自然而然会让同学们映射出那么它是什么对吧?具体的话呢,那么这个刀ER file是什么?具体的。我们留在下一站展开,但是呢,我们先做了以后再去学,因为我们都明白计算机呢,是有点反着哈,呃,不是说你。是吧,会做就是学会了以后再去做,而有些时候是做会,做着做着你就会了,那么我故意呢,把其中有一小节哈,跟容器数据卷呢混合在一块,用doer fair的第二种方式呢,来给大家讲。
01:03
好,那么首先什么叫docker file?简单一句话,同学们。我们呢,是不是干过哈。Java。那么这哥们如果说。一编译以后是不是就像是源代码一样,是hello.class我相信这个我可以闭嘴了,那么一样,这个是我们的Java范畴。那么同理到我们的doer范畴呢,这个时候这个哈点价吧,就是我们现在直接用的这个镜像一卖。那么有什么东西来描述这个image呢?那么就是我们的doer。那么一类比,它相当于说是对这个镜像的一种源码级的描述,那么换句话说,如果你能去改这个东东,那么言下之意,你这个镜像你想怎么做是不是都OK啊,那么来吧。
02:03
先看看我们的docker HUB,那么这个时候哈。来查一下我们常用的tomcat。走人。来他们看,点开,同学们请看。支持的标记和相关的刀开link可连接,那么大家请看他们看下它是不是从789都给你啊,我们就选一个8.5.32中规中矩的吧,或者随便一个哈,同学们请看我点开。来。在getate上面,他们看doer的cool,大家看什么叫doer fire就这些。OK,那么呢,粗略的带着大家过一遍。第一行是不是?JDK8。那么这什么意思啊?如果敏感的同学就应该明白,哎,老师以前提过一个问题,说为什么我们的一个他看弄下来是400多张。
03:08
而且这个时候我们讲过,这个是不是我们他们看的镜像啊。那么言下之意哦。我了解,原来他们开八这个镜像里面默认。爆了一场接着看。明白,那么也就是说你因为你懂的,不装GDK是不是没法跑。他们看看,那么你现在能直接跑他们看到的前提,是不是说明他已经装好了?接着看,好比你吃方便面买了个方便面,但是你打开那个盖子,里面是不是默认自带调料包和叉子?好。注意是不是都是红色开头,那么这儿不多说。提前剧透。来。是不是有这些东东,那就是我们下一章要学的重点,那么好,现在不多废话,我们先带着大家看,那么from是不是什么意思啊,有点像我们Java里面的extend,继承我们Java里面的代码是不是通时默认就是不写,是不是也都是明面上知道。
04:15
Object也记一个镜像,它不可能孤立的构建,什么事情都不可能是无木之本,无源之水,它总要有个源头。我这个镜像来自于哪?听懂,那么当然你可能说,那这个镜像又来自哪呢?大伙说那么来env软。Work Di env环,诶,起码v catal琳a home use look,这还能看懂吧?我知道大家现在没学过,我们只是粗略的告诉大家doer file是个什么,长什么样,具体细节我们下一章讲,但是你告诉我这个就是你现在以大家学了半年的基础,假设现在让你去看一个源代码,你要有这个技术的探索和研发能力,你也会明白这不就是env,那我明白了,那这个就不就是配卡塔琳的home吗?在Linux环境下面是不是有user?
05:03
听懂,那么啥意思呢?那这个是不是那个CD user local,大家看任何一个Li Linux是不是都有个user local,而且我们一再强调过docker下面下载的东西是不是就是个精简版的,一个小型化的精巧版的小Linux系统,比方说我们的200多兆的那个。我们来继续。其他的我们先不说runr make DR,杠P,然后诶,Run是不是就是运行一个零零式命令啊,Make DR你总该看得懂吧,那么好,中间这些,那么当然复杂了,那么这个时候干嘛呢?这那么加这些什么东西连接符啊,由于它太长了,一行写不下,那是不是转行折行啊,代表这是个连接符,巴拉巴拉巴拉告诉你,哇,原来一个他们看能跑起来,后面是有这么多东西,这个是不是有点相当于我们编的hello.class里面的字节码长什么样啊,那么欧拉我们不说别的,我们看到最后我们发现ex个supposeose,我就是没讲,你也很明白,OK,我明白了。
06:03
当前这个do fair就觉得那个镜像长什么样,它最终对外暴露出的默认端口是8080,然后你看CMD,看他琳娜的run,那么言下之意是不是就启动这个timeca塔,好,那么他们看塔长成这样,那么来吧,同学们。我们回到我们的什么?Do,那么这个时候我们再来看看我们的red呢?来,大家请看,现在变成red了,下是好下,你千万不要觉得你掌握一个命令你就懂了,哎呀,远着呢,千万不要学这些什么。最肤浅的,你学的越简单,你出去面就越难,你学的越难,你出去外面就越容易。要把深层次的原理整明白。否则你怎么你码农还是软件工程师啊,两回事,我们来同学们啊,那么假设我们讲过的4.0版。那么来吧,什么概念?大家看怎么又有了?
07:04
来看run等等,那么从这我们是不是又跟刚才一样,只不过他们看暴露出去的端口叫8080READY,是不是叫6379,最后command。CMD命令启动ready server秒倒那么O了,那么所以说我们这用。Do菲尔简单的介绍了以后,你就知道它是镜像这个模板的描述文件,它有它自己的一套语法规则,有点类似于我们Linux世界里面的线脚本编程,只不过这个叫doer fair编doer编程OK,好。那么呢?来吧,我们用doer file完成我们容器卷的管理,首先根目录下新建my doer文件夹并进入,那么O啦,我们这儿呢,现在呢,干嘛呢,根目录下面来吧,注意我现在是不是在主机啊哈,那么这一块的话。
08:03
Do卡后台也不运行着任何容器,实力那么好,Make。DR容器下面建一个麦是吗?Doer文件夹,并进入cdmi doer o吧,PWD没问题吧?那么在这个下面干什么呢?我们呢,在docker file中要使用volume指令来给镜像添加一个或多个数据卷,那么呢?Doer fair是什么鬼?那么言下之意就是模拟的,模拟的这个我们来自己写一个,那首当其冲,第一行就是符,你不要管是什么,你先照着老师的写来吧。什么叫volume指令呢?那么来请看。上一轮我们是不是一对一啊,那么假设我能不能一对多呢?那么换句话说,我的这个券,也就是说我一个笔记本上可不可以接两个活动硬盘,三个活动硬盘,只要你有足够的USB接口,没有任何问题吧?O不啦,那么这个时候请看我们这。
09:07
它的value的语法规则,这个是不是个阶层串,宿主型的阶层串啊,说明可以连多个,但是你说老师你上一轮讲的用命令是不是宿主机的加容器内的,不好意思啊,这块只支持容器内的。对。杠W6命令,因为出于可移植和分享的考虑,用这个能不能容器目录?这种方法不能直接到高分中实现好,因为由于宿主机目录是依赖于特定宿主机的,那么并不能保证所有宿主机上面都有这样的目录,假比你现在写死了一个。假设你再用刀快费去写,我就是要ABC这么一个目录,这台机器上倒是有了,那么你把这个刀快file放到别的机器上,可能那个机器上它没有ABC这个目录,它迁移性受到影响,所以说它不存在这个,那么接下来我们干嘛呢?好,就干一件事,先编写doer fair,那么就是doer fair的构建好,那么这个时候我干一件什么事呢?来同学们,现在我vim就是大家看这就这么高,就这么高,那么。
10:14
老师,你写一些什么鬼呢?那么这个时候请大家。根据我知道我还没讲,但是要求同学们先提前学,学着学着做着做着就会了,你不要什么都学了才去做,我不会让你写这么复杂的。我们先看一个老师给大家写的非常非常简单的先,那么你是不是就像编码一样。像Linux shell脚本编程一样,先要编docker file啊。内容是什么呢?来。同学们,我们就把它粘出来,那么请同学们呢,看看老师写了一个什么东东,好要求大家。自学十秒钟。好,同学们,那么这from centera什么意思啊?就说明我这个镜像,我当前自己要做的这个do fair来自于一个负类的镜像,是这个,这个相当于extend object听懂或者extend user service DA service base DAO这样的一种东东。
11:16
第二个说明,我要在当前的这个三条里面干嘛,根目录下面新建两个容器圈,DATE1。贝塔二第三个。Command,我在Linux世界那个里面三乘A这个。我打出这么一句话代表是吗?有点像Java里面的SIM out的printline或者是洛切什么日志一样,说明我是不是能执行到这才对呀。第三一个明白什么意思啊,有点类似于同学们,你把这段话翻译下来以后,你可以把它翻译成这样,那么就是。Do run,杠I,然后呢?杠V。
12:01
之后,比方说这是一个某个主题的目录,那么这个时候。在这儿。就这么一个,然后呢。在这,这又是个主题目录,假设这是二,这是一,能理解,然后这边是SAN塔,OA,然后并BA,如果把这一大段大doer fair翻译成我们上一讲讲的直接命令的方法,大致就是等于这个意思听懂,但是由于我们刚开发说过了这个它不支持啊,因为它有迁移性,那么所以说我们在这我们呢?只能在当前跑了以后,会在当前这个生态镜像下面生成一个data塔,标一标二听懂,那么好,我们来试试,那么把这个。不吃。粘贴。直接给写好了哈,我就不再废话,那么接下来第一步我们大开费尔,至少先剧透第一步干嘛?是不是先编写一个可执行的校脚本或者叫可执行的大file脚本呢?第二步,Build生成镜像。
13:15
那么这个doer build命令,那么大家搂一眼,诶,我看上面这个架构图的时候,看有没有这个命令哈。那。Build,什么build?就是这个docker file文件,将它build成为一个新的。镜像模板,好,这是不是有个build,那么来吧,那么这个build怎么用呢?好,那么这个时候请看doer build,杠FF是fair fair的意思就是指明我这个doer fell在哪,然后杠T,那么就是什么在单这还有个点,这个T是不是就是我们说的命名空间,然后你的这个镜像名字,然后在当前目录下面,好,那么同学们我们来执行一下给大家看看,那么现在我这是不是有个doer fair了,那么呢,如果在当前目录下面你可以不加,而且名字你叫这个的话,你可以不加那个杠F听懂,那么这开大开刀,开build-F,比方说。
14:16
我是在my docker下面有一个第这么一个do文件,你加也可以,不加也行哈,那么能干T干嘛呢?我叫ZZYY,周阳自己做的centerta OS点,那么这个时候干什么?他就会一层一层一层的执行我们相关的命令,来构建我们以当前这个模板,模板添加了我们的新功能,添加了两个容器数据卷来构建成为一个更新的镜像文件供我们运行。还记不记得老师以前说过一个问题,就是说这个镜像我干过一件事儿。
15:02
干嘛?花卷。对,我们是不是说过镜像是一层套一层啊,那么现在什么概念呢?我们看它返回几个镜像,那个ID,这个是不是第一层,这个是不是第二层,那么大家看一眼,那么言下之意就是什么?就像一个同心圆,这一圈一圈一圈套着,我们只反问最外层OK,那么这个时候。Do build获得一个新的镜像,Z z YY center,瑞好,那么主要是为了命名区别开,那么同学们回车。大家看。发送上下文的doer DEMO,那么这个时候是不是跟doer的那个主进程来沟通了,来普三维。OK,大家看STEP0123,那么大家看只要它有这个返回了,那么Lowe是不是说明它分成了很多层啊,那么最后一层一层一层层叠加successfully build这么一个东西,那么这个时候请看doer might来,同学们112A开头,大家露一眼,是不是有一个112A开头,这个时候是不是有我周扬版的这个生态瑞,那么一件是什么?如果你现在要运行我这个容器,一运行以后干嘛?直接就会在容器里面的这个center s下面直接建两个容器圈,分别叫date volume1 date volume date container volume2,听到相当于是这个本子一出场就给你挂了两个活动硬盘,那么何以见得呢?你们来吧,同学们,Docker images zz。
16:35
YYSAN塔OS能查出来吧,那么这个时候接下来干嘛?那么现在我们是不是已经生成了一个新的镜像,这个都能查出来,是不是有了么?接下来是不是要run,那么干嘛呢?来吧同学们,Do run-I7那么呢?Z c YY center oa4,然后干嘛呢?B都不用执行,这个你要想写也可以哈,反正我们容器卷干嘛也是告诉他整完了以后是不是成功的执行以后登录进这个好底下的中断命令函登录,而且此外同学们请看。
17:14
有没有打出这句话,说明我们的这个容器卷是不是运行到这一行?好了,那么来吧,同学们搂一眼回车。来,注意这个是镜像。有卖。而现在这个是不是容器啊,那么来吧,进去了以后PWD,我们这个干嘛,精简版的center上面是不是有根目录,你懂的,如果我们去运行什么。阿里云上面这个人家可没有给我一开始啊,就有这么两个容器卷,或者是三个容器卷,那么现在大家请看,用了我自己自定义的这个LL1回车。老爷是不是T1T2啊?清楚啊,那么这个时候我们来看。
18:00
通过上述步骤。容器内的目录卷。没问题吧,那么这个是不是用大块fire?建多个容器卷,一个还是两个都由着你,那么我们对应的主机目录在哪呢?那么杨哥讲过,你现在是不是用do fair这种形式啊?在容器里面建了两个容器卷,叫D1和D2,但是容器卷重要的是不是容器卷要跟宿主机。要进行数据的交互和沟通啊,那么这个时候比方说我们现在CD data volume1好,杨哥在这一这,那么touch干嘛?Contain container01.txt。OK,我这从干嘛,是不是建了一个,那么我在容器里面是建了,那么请看这个现在是不是在容器里面,那么我主机上我在哪看到呢?因为我这一轮我并没有像以前的命令,这是不是指定宿主机的绝对路径啊,那么我没有指定,但是放心do也想到了,他会给你一个默认,那么这个时候请跟着我来,我们呢。
19:07
打开终端,那么这个时候刀开。哎,那么doer干嘛呢,Inspect?那么这个时候请看我们这个container ID是这个呀,回撤走人,那么呢,还是回到我们之前,大家请看。老长了是不是,那么这个时候干嘛?就是如果你用刀file生成没有指定宿主机的这段话。干嘛默认的,大家看读写都是错那么欧啦,不废话。那我们在这套标里些。这个是容器内的容器卷,这个是我们本地机器宿主机上的,那么可以见得,那么来吧,同学们再开一个终端,那么呢,CD。
20:00
回车PWD,你懂的,这个是不是我们主机上的那么好LL,大家看有没有CONTAIN0几点TXT完全有,那么是不是又变相的实现了我们的宿主机到容器,容器到宿主机之间的数据共享?那么来吧,Touch host.txt主机上又建了LL主机上有了吧,那么容器里面呢?L了L了一样。OK,那么所以说这一切主机对应的默认地址欧啦,跟刚才的案例一样好,那么这有一个备注。那么呢,我的机器上没有出现,但是我害怕同学们呢,有些同学的机器上出问题,就是说你在卷了容器卷以后,会莫名其妙的会发现说哎,怎么我不能写,那么这个时候如果出现了这种报错,那么呢,请在挂载目录后面加这么一个参数就能处理,啥意思啊?就比方说你要是碰上这样的一种报错,那么就请在这儿干嘛。加这么一个。给权限为处就完了,一般不会遇到,那假设你遇到了,那么就用这么一个招,OK,那么好,同学们,这个就是我们用do fair的形式添加数据卷,我们呢,介绍到这。
我来说两句