00:00
好,那么各位同学,我们继续,我们上一讲介绍了镜像的操作相关命令,那么这一讲我们将为大家介绍容器的相关操作命令。好,那么在这儿。有镜像才能创建容器,这是根本前提,那么呢,多次强调过这两个镜像和容器的关系不再重复,我们呢,此时呢,演示下载一个生态VS的镜像。来进行,那么相当于说这块呢,不要混淆了哈,各位同学,我现在呢是在center OS上面,就是我宿主机上面的这个,呃,我宿主机呢是WINDOWS10,然后我是不是装了微虚拟软件在上面呢,我们为了学习Linux讲了一个。真实的完全模拟的,用虚拟机模拟的一个Linux操作系统叫center维S啊,然后在这个center上面我们又装了个doer,没问题吧,那么现在相当于说我需要从阿里云上面再拉下来一个镜像,那么我这次的案例的这个这个从阿里云上面拉下的这个镜像是center OS能跟上,也就是说现在我docker上面除了可以跑,他们看engine还可以跑,U班图还可以跑。
01:10
干嘛center瑞阿里云上面拉下的这个那么好,那么这个时候我们来先来看一眼干什么呢?Doer。A,那么呢?OK,为了避免等待,那么呢,中央老师已经在课间的时候已经给同学们提前拉好,那么呢,这个image,那么已经更新到最近的这个版本O吧,那么老规矩复习一下,那么相当于说我现在是不是从。阿里云上面拉下来了我们的什么东东,Center o的镜像啊,那么这个时候怎么查镜像是doer images啊,查看一下本地已经有的镜像,那么此时大家请看有没有欧吧,那么这两个是完整的名字,中间用冒号,那么这个时候大家请看多少?
02:02
是天津才200兆。哎。这个时候请看我们要明白,咱们呢,在讲这个center的时候,我们在讲各种安装的时候,我们都知道我们这个是不是在这儿介绍过。我们真真真正虚拟机上装的是这个镜像啊,324.8这个多少,是不是接近四个G啊,4000兆啊,能跟上,这是我们学Linux,就是三个月前学的时候是这个,但是现在大家请看我们呢,下载下来的这个最新的阿里云上面这个doer。200上面这个center准备跑到do塔里面的这个center多少只有199兆,200兆不到,这是什么意思啊?来同学们请看这个是不是阿里云上面的仓库啊,三套S是我们的图标拉下来,那么这个时候请看容器是什么概念?简易版的Linux环境能跟上前面说过doer,它是启动是什么秒级的,为什么他就把那些除了保留内核,那些什么硬件啊,网络呀,打印机不相关的通通拿掉干嘛?所以说为什么企业里面会用它,因为它快,它精简干嘛呢?怎么见得,请看美团。
03:22
为什么用刀卡更加轻量?基于容器的虚拟化仅包含业务所运行所需要的runtime?环境三套从U盘陀基础镜像仅多少170兆,所以说再回到我们之前,现在容器虚拟化技术这个理论大家可以看干嘛,我这个上面每一个蓝色就是个集装箱,我们只用。干嘛做了精简版,做了I减减的这个最基础的这个镜像200兆这个center瑞斯,剩下上面干嘛就是跑我们各自的容器好,那么所以说大家可以知道刀口为什么快,那么这块一个命令后面,以及每个命令后面它为什么这么小,这么大,那么这些原理性的东西,深层次的东西需要给大家讲明白,否则的话。
04:10
你跟我说。就讲这么一个命令,有什么好说的,如果你只学这样,你永远只学得到上归谷的皮,根本学不到羊哥的骨和肉。好,那么接下来我们呢,开工。步步来,现在我们呢,可以呢,获得我们的镜像,那么言下之意,有镜像了,我们是不是要有container容器,依照你这个镜像给跑起来呀?那么所以说我们下面的案例就以我们的这个刀准备在doer上里面再跑一个center,瑞这个doer里面的这个center来给大家做讲解,那么下面干嘛?有这个了,是不是要。运行这个容器啊,那么以我当前的这个模板,三套S的这个模板来进行什么启动容器来,就相当于是你有一个对象,好吧,那么这个时候非常重要的几个命令经常用是doer的主流命令之一,Doer run固定写法,Option选项参数谁镜像,然后command和参数。那么什么意思呢?新建并启动容器,我们讲过前面为什么我在hello word的时候要详细的跟大家讲run命令,说过了这货就干两件事。
05:27
新一依照某个镜像干嘛?新建一个这个镜像的具体实例容器跑起来,比方说现在我们就要准备运行当前的这个生态维,那么呢,在本地有新建运行,本地没有对应的去HUB上面去拉取。那么现在。杨哥机器上本地是不是有了,所以说他就不会去远端去拉了,因为我们之前已经拉过了本地有,那么现在就直接启动,那么这个时候怎么玩呢。他的。启动,那么就什么东东,我们呢,先用一个最简单的好来看看。
06:06
它的常用启动有这些命令,有些是一个减号,有些是两个,那么红色的这个,还有这个后面我们讲他们看的时候会说这个,现在你先不要管这两个大小P先。处理。这个这个这个,那么最常用的是I和T,俗称it,那么干什么呢?I是interactive缩写,以交互的形式启动运行容器,通常与T使用,T是代表TT。重新分配一个什么东东为终端好,那么这一块的话呢,我们启动交互式容器,怎么启动呢?大家请看刀卡,根据命令run,杠是不是option选项IT,当然一般而言我们不要写两次啊,可以合起来写杠IT,它的意思呢,I是我现在要求以这个center瑞,你既可以写这个名字,也可以写这个ID号,那么这个时候假设我们就写这个ID号,那么呢,杠杠。
07:09
Name呢,相当于说把你启动的这个。容器重新命一个别名。假设我们就叫。My center OS 010115能跟上那么好,这样吧,我先不加这个名字,给大家看看哈。那么好,我们先这块。Idea,然后呢,这个时候请看我一回车。大家看我这个是不是容器,呃,这个是不是我们的镜像ID,以这个镜像ID这一步就生成了一个实例,并登录进到了docker里面的这个center,瑞何以见的,大家请看现在这个提示符是我还在宿主机里面,而现在这个大家请看是不是已经变成了一个。
08:05
ID啊,那么这个ID是不是我们的一麦ID,对比一下八八开头,4D开头不是,那么这个时候请看我们呢,用一个PWD。不用讲,或者不用PWD用LS这个命令不用我多说什么吧,全班同学都知道是不是啊,那么这个时候我第一个讲run的话,我讲细一点,讲慢一点,这个命令非常重要,初学的时候慢,但是要稳,慢慢来才比较快,后面我们用的越来越熟。那么这个时候同学们干嘛先学会走,再学会跑,我讲详细一点,那么它这个意思就是说我以这个I idea以及我们的center维为模板,生成了一个这样的一个容器,你可以把它看作就是对象的一个地址,好那么这时候干嘛LS的回车,那么相当于说我现在是不是登录进刀卡里面跑着的这个200兆的这个center瑞了一回车。
09:02
大家请看。熟悉吧,那么跟我讲root密码是不是3V4。必须要的,但是呢,有些有些没有,你看temp塔,我们再来PWD啥概念说明我现在是不是在刀ER里面跑着的,这个三套S里面的什么东东,根目录之下呀,那么言下之意,它这个什么意思啊,那么这个I和T,这个I是要交货,T代表伪终端,它的有点意思就是这样。你假设你登录进docker里面的这个center瑞了,登录成功以后我怎么知道,我告诉docker里面的这个center瑞了,我还要和你交互,相当于说登录成功以后,它自动在终端中打开,相当于说给了我这么一个终端,那么这个终端就是我们这儿的什么命令函输入的提示符,那么你登录进去以后在哪?就在这个doer里面这个center OS的根目录下。清楚,OK,那么好,接下来在这块完了以后。
10:05
我们呢,都有,那么请看杠EF这个熟悉吧,杠EF明绝对明白杠EF是什么意思,不用我多说,三个月前大家学linus都知道,那么现在能操作中命令,是不是说明我成功登录进了docker里面的这个center,大家看有没有?那么这个时候同学们可能就有点奇怪,说老师你怎么证明是刀里面的?吃刀口里面的三呢这个字符串。哈希值到底又是个什么鬼?那么这个时候请看干嘛呢?我们学下一个命令,列出当前所有正在运行的容器,那么就是刀。好,那你说老师不大懂,回答我现在我这个是不是Linux的,如果我想查看Linux当前机器Linux里面的所有进程是不是杠EF能跟上,那么好,我想查看我刀ER里面跑到跑着的所有什么进程,或者说我鲸鱼背上所有集装箱有哪一些,那么这个时候干嘛,我鲸鱼背上背了几个集装箱,那么就是刀开能跟上,那么这个请大家看对比。
11:30
我们呢,来搂一眼。尾号C08,尾号AC08,请看对比。这货叫以麦ID88开头,这货叫什么contain ID什么意思啊,是不是叫容器ID啊?OK,那么你看我的这个容器ID。生成自这个映像镜像ID,然后我当前的command叫什么冰箱,那么言下之意是不是以冰箱的方式登录进了这个容器里面,然后请看状态是什么up什么概念,是说明这个容器正启动着哦了,那么言下之意do开入二就是在本地新建并进入容器,然后这个容器里面可能装的是center瑞,可能装的是red,可能装的是U盘图,可能装的是N,那么各自进入的命令不一样,然后此外请大家看。
12:29
这有一个什么东东,这除了端口诶。以外大家看哈,就这个容器,现在我进来的,它这是不是有个name。这个内幕是什么来的,是doer随机给这个分配的,那么呢,跟我没关系的,那么如果说你没有指定什么东东。干干内幕,那么他就会用自己默认随机分配的一个名字给他,如果你主人你指定了容器的新名字,那么你叫什么我就叫什么,清楚好,那么至于说这个干D和大小P,大P和小P,以及这个小P红色,这个我们在讲到他们cat的时候再和大家进行介绍,此时你先不要管经,现在你就给我先学两个I ti代表我登录进docker里面的这个容器以后,我要跟你交互,加个TTTY代表伪终端一下,这是登录进去后给我弹出来一个输入命令的命令函,终端你可以这么理解,好那么接下来。
13:32
列出所有正在运行的容器,那么呢,在这一块it叫启动交互式容器,那么呢,后面有一个启动守护式容器,那么到时候我们再说,我们先从简单到复杂,一点点带着大家深入。那么此时我们呢,可以看。第一个doer run,第二个doer PS PS那么干嘛?如果单独打,那么是不是查Linux的全部后台进程,那doer PS啊,那么查的是doer里面运行的进程有哪一些?换句话说就是这个容器有哪些东西在跑,这个刀口里面有哪些容器,有哪些container。
14:15
ID出现哪些容器在跑着?金鱼背上有哪几个集装箱?好,那么接下来我们来看一下刀它的参数,那么这两个参数呢?欧了。I是沃,沃是什么?正在运行的加历史上运行过的全部那么好,那么这个时候请看啊同学们,我们演示一下这是不是doer PS啊,那么好,假设哈,我现在呢,先讲下一个命令,再转过来这儿退出容器或者叫停止容器吧,Stop行不行,那么呢,我们就先退出也好,或者是。停止也罢,那么都可以,那么假设现在退出有两种方法,一种叫exist。
15:00
CTRLP加Q,那么这个时候请看两者的区别,那么现在相当于说金鱼背上有个刀卡,这个刀卡上面有个集装箱,是一个精简版的特维斯啊,那么这块大家请看。注意这个提示符,现在我是在docker里面的这个center里面,我exit好请看哈,同学们,现在我还没敲命令,这个刀卡这个状态是什么,是不是up欧了,那么现在我exit退出来。桌面什么桌面,现在来说是不是回到我这个桌面了,换句话说,现在我已经退回到宿主机,退回到我们的center v4,好,那么这个时候我们再敲。大家看status up是不是没了,注意docker PS是默认显示当前正在运行的,但是现在exit是什么?关闭这个容器并退出,那么所以说就没了,但是呢,我们回到这,请看。
16:05
L。上一个last,大家请看。我执行了ex,哎,我执行了exip以后,当前活着的容器没了吧,但是呢,我想看看我上一个容器是谁。OK,上一个容器你看是呢,是不是已经退出了这个状态,那么上一个容器就是我们运行的什么东东,刚才的这一个AC08,那么来。如果是A,那么就是当前正在运行的和过往的,那么患者是翻旧账加当前活着的,那么你看我运行过的是不是很多呀?好,你不要管是什么,那么再来。杠L上一次运行的,那么杠N呢是number,比方说我写个五,或者说写个三,或者就什么意思呢,你给我把上三次。运行过的输给我,那么大家请看,那么上三次分别运行什么都有OK,那么呢,再来Q浸末只显示容器编号么?这个时候的话呢,干什么呢?那么大家请看杠Q。
17:09
要换句话说,Q或者说L那么好,L是不是上一次我们运行的这个,虽然说已经退出了,那么我QLQ呢,那么言下之意什么东西啊,是指。干嘛?这个Q是do PS,这个Q的意思就是只显示什么东东容器编号,那么就跟前面讲的一样,什么意思啊?如果到时候我可以批量删除镜像,那么反过来讲,那么可不可以批量删除什么东东我们的容器呢?呀,好,那么这个就是我们的。提供的相关的讲解和参数,那么再来,我们来再运行一次,那么来,同学们请看。Docker image centerist有这个镜像吧,现在我run,那么干什么呢?Docker run,杠I,注意讲过了,杠I是要交货,T是有一个伪终端,说穿了那么就是要登录docker里面的这个森瑞斯,我们要在docker上面跑一个森瑞斯的实例,登录进去以后给我返回一个命令终端,我要重,我要跟你交货,那么好,这个时候我们再加这个参数,请看。
18:20
杠杠,Name,你叫什么呢?我叫my center OS 011。五那么这个时候是不是我给你自己命了个名,上一次我们讲过你不给他用这个名字,他是不是随机分配一个,那么这种名字的话呢,只有doer自己知道,我们有时候呢,用这个呢,是肯定精确,但是一般我们要跟你讲,我这个容器叫AC08,或者叫这么这么一长串不好使吧,我们是不是有时候会给它整一个别名啊,那么欧拉那这个时候三。OS2,那么这个时候启动。讲过,那么这个时候干嘛?是不是就返回给我一个命令函终端,那么请看现在是不是B1D,绝对不是上次这个AC08了吧?那么此时大家可以看怎么着,我们现在是不是又以依照我们这个三套S镜像重新又生成了一个叫尾号叫B11的这个新的容器实例啊,而且此外它的名字叫什么,这个容器名字叫什么MY0115。
19:20
要懂OK,好,那么呢,详细给大家讲清楚,那么这个就是不截段输出啊,它的那些呃,备注啊,还有信息啊,这个前面已经说过了,不再重复演示,好那么刚才我们演示了一个退出叫exit关闭容器了以后。退出,那么这种情况下干嘛?那么就是一锤子买卖,那么如果你以后还要用它,那么你只能是重启,但是呢,还有一种情况就是我现在呢,可能要离开一下这个容器,可能我以后还想再进来,我不想就是关,就是离开,但不关闭exit那个是关闭是离开,关闭出门关灯,而这个时候是出门可能还会回来,灯先别关,那么这个时候请看。
20:04
操作时先按照左键盘键盘左下角的CTRL,再按照英文字母P加Q,请看注意这个,只要有这种容器ID号,就说明你进入到了这个容器,否则就是退回到宿主机,说过了大海就是我们的宿主机,这条蓝色的金鱼就是刀卡,刀卡上面的一个一个的集装箱就是一个个容器实力现在我就是爬到鲸鱼背上进入到了叫bed这个centerr ls的容器实力那么现在我退出CTRL加P加Q。大家请看我现在是不是相当于说就跳回海里面,回到我的宿主机了,那么这个桌面什么意思呢?我你看我现在宿主机,现在我用的是不是36.8,那么我鼠标右键终端中打开,你看我现在在的当前位置是不是桌面啊,桌面就是现在这个蓝色,这个是不是跟我故意调成蓝色,是不是跟大海一样啊,你要懂欧拉。好,那么此时大家请看,那么呢,你怎么证明你出来了以后没有关闭容器呢?Doer PS的,大家看bed是不是还活着呢?状态是up理解O了,那么这个时候大家请看,如果到杠干嘛?
21:13
N2,那么过去启动过的两个容器,你看刚刚我们第一次讲的是不是这个,然后我们现在启活着的是不是这个0115这个欧了,好,那么这个呢,就是两种退出方式,Exist和CTRLP加Q,那么你可能会马上就聪明的同学马上会反应过来,容器不停止退出,那我想重新进去又怎么办呢?那么待会儿我们会说好,那么下面好了,启动容器,那么言下之意什么概念呢?那么大家请看我现在这个是不是我已经退出去,已经关了,那么。假设我现在给它停了以后,我想启动这个容器呢,那么这个时候请把这个容器的ID打开,那么呢。Do start。大家请看,那么启动容器是不是再加容器名或容器名字啊,那么这个时候大家请看这个容器了啊,现在不是镜像,那么这个那么呢,OK,能不能一回车,大家请看我现在哈用最简单的doer PS的大是最纯净的什么当前正在运行的。
22:18
大家请看是不是两个up,那么说明什么?也就是说你这个在金鱼背上这个集装箱一个一个集装箱就是一个的容器,它可以关,可以停,你可以重启,可以删除。金鱼背上这个集装箱是不是也可以安装也可以卸载啊欧啦,那么现在呢,刚才。这个容器是停的,现在我通过这个start命令,相当于说是不是又给它启动起来了,那么说明启动起来以后,当前我正在运行的容器共计有两个,好,那么继续,那么接下来重启容器,那么O了,比方说MY0.5这个那么了我把它ID粘起来,那么就是什么刀。
23:01
Restart,那么这个时候粘贴大家看。刚才我是不是一直启一启动了以后就持续了三分钟啊,那么这个时候我们呢,揉眼那么稍微有点慢么?稍等他一下,那么好,同学们只要它成功了,就会返回对应的容器编号哈,那么这个时候请大家再看。干嘛?有没有重启成功,成功了,为什么刚才是一直持续了三分钟,现在是多少六秒钟,说明我们我们是不是刚刚启动完成啊欧了,那么这个时候我们的容器重启,那么停止这个我认为举一反三,不用我演示了吧,Doer stop,还要哦,这还是演示好,好还要演示一下吧,强制停止这叫什么?或者叫温柔停止,那么好,刚好我这有两个容器,那么来吧,什么叫强制,什么叫温柔呢?就说穿了,就这么演示吧,好。Docker stop,那么大家请看。
24:00
现在我们呢,先停止这一个容器。Stop,是等这个容器慢慢的。停止,OK,那么呢,相当于说给它慢慢的熄火。说穿了就好比说你现在有一部笔记本电脑,没有外置电源,就连着自己的这个电池,这个stop就是点正常的关机,那么它可能等个十秒钟以内,我们大家看现在是不是就关闭了欧了,那么请看现在在执行这个之前两个APP现在是不是只有一个了,那么还有一个叫什么强制关闭,什么意思啊,你就当是什么你你要关你们家冰箱的话,你直接把电源插头给拔了,Q能跟上那么好,那么这个时候大家请看刀开。QQ什么呢,这个。刚才我们stop是不是。等了一会儿。好,刚才我们stop等了一会儿,那么这个时候我们关闭另外一个容器,那么这时候回撤,大家可以看一下,是马上直接就给他拿走了,那么换句话说,Stop是温柔停止,Q是强制停止,粗暴一些说穿了直接拔电源O吧,那么来最后删除已停止的容器。
25:16
好,那么这个时候干嘛呢?那么大家请看。现在这个是不是我当前正在运行的容器一个都没有了,都停了,但是在dota的缓存记录里面他记着,或者在它的日志里面他记着,你从你现在已经启动过哪些容器,那么好,这个时候请看杠L,那么大家看上一轮我启动的,那么这个时候干什么呢?杠N2,刚才我是不是用演饰了两个生成,那么是这两个,那么言下之意干嘛呢?删除那么好,注意删除什么呀?已停止的,如果它运行着,有可能你去删,他会告诉你冲突啊,因为现在人家还用着呢,就像有点我们买这个数据库主外键约束那样的感觉清楚啊,哦无了,那么所以说这个时候我们来看就是do卡RM,注意r mi就要删除image镜像,没有这个I就要删除container容器,听懂OK,那么这个时候请看我们现在。
26:14
就删。AC08这个,那么大家请看,注意我这没加F,是不是F是强制删除能跟上,那么这块他们都已经停了,这个是不是停的意思啊。好,那么大家请看。删除干净,那么这个时候干嘛再执行。OK,那么你可能说,哎,老师怎么又是两个,因为这删了一个之前我是不是还运行过别的,你看边AC08删了编号是不是都不一样了,那么O了,那么所以说接下来我们是不是要删bed这个了,那么呢,依旧干嘛呢?那么再复习一下,那么假设你要删什么,那么。没有停止的容器呢,就加F强制删除,就是说话说穿了就是关停再删除,那么这个时候没有F,就是只是删除已关闭的,那么这个呢,哎呀,不用演示了吧,能跟上吧,演示一次够了,RM好,那么再来一次性删除多个容器呢。
27:09
来,那么给大家干嘛?一分钟自学。好,还记得这个Q和A吧,是不是找出当前全部的什么东东容器ID啊,那么请看哈,那么这个时候大家请看刀卡杠Q。是当前正在运行的容器只返回是吗?容器ID,但是由于我现在没有一个正在运行的,那么加上A,那么是不是你看我在本机上,由于杨哥呢,在其他班也讲过,那么这个时候后就自己备课的时候是不是启动过其他容器么?这个时候大家请看是不是有很多很多ID,那么一样就跟前面一样干嘛?刀卡RM加I,那么其实就跟前面讲那个批量删除镜像是不是一回事啊。OK,行,不错,举一反三能明白,那么你可能会注意什么东东啊?
28:02
XX,我们说过什么东西啊?是不是Linux可变参数啊?这是什么东东啊?纯零命是管道符啊,言下之意,上一个命令的结果集作为输入参数传递给下一个下一个这个参数,那么言下之意就比方说第一个命令查出来了三个container容下D,那么呢,相当于说就会传给这个XX,那么有点类似于是不是又回到我们这个delete什么什么什么的while ID在这个里面彻底删除,能跟上欧了,那么这两个命令你用哪一个都可以,那么这一部分就是我们容器操作命令的上半场,那么呢?别着急,重要的在下面,容器是doer里面最重最最最重要的概念和运行,那么基本功很重要。好,那么呢上我们讲到这儿,马上讲容器的下半场。
我来说两句