00:00
那么我们继续上半场呢?我们呢,给大家呢,其说穿了主要介绍了容器的。新建运行,查看当前正在运行的容器命令,无非就是什么,查Linux docker PS,查docker里面的,那么剩下这些是什么?呃,重启,停止,退出,我认为就是什么,以大家现在的基础,我就是不讲这几个,你自己看看我的这个脑图。是不是也会啊,那么这些没什么技术含量。那么呢,退出的方式,Exit ctrl p加Q,这是第三部分,那么上一讲我们讲的这个,然后启动是交互杠,It能跟上好,那么接下来我们来看看重要的比方说。启动式交互有没有别的方式,比方说我们现在我不想给你交互啊,你给我启动就行了,我们不用返回这个对话窗口,命令行终端,我希望你后台以守护进程的方式启动。这是第一个,第二个。你这不退出了吗?Exit,好说关闭退出,那么这个CTRL加Q呢?关闭不退出,我想重新进来可不可以呢?那么这些有什么呢?所以说更加细腻度的知识请跟着杨哥来。
01:12
走人。来以守护进程的方式启动,那么所有参数在这儿别着急,没讲完呢,我这有个什么鬼,是不是后台运行容器并返回容器ID,也即启动守护式容器啊?那么刚才我们讲过doer run了,那么大家请看我们再来演示一次doer images是不是有我们这个santaists?那么好复习一下,马上docker。若干I。什么意思呢?是以交互并返回命令行终端,你返回谁生塔OS啊,我就不再写那个杠杠内幕,听懂了吧,我就不再写那个杠内幕来给它弄。命名别名了,少写一步,偷个懒,那大家请看返回什么?是不是返回一个新的容器ID,说明我从Linux宿主机从大海爬到经背上,进入到了这个编号是这个的这个容器ID里面O吧,那么前面讲过PWDLS的杠L,那么言下之意是不是标准的Linux命令,因为现在跑的就是这个迷你版的精简版的doer上里面运行的瑞斯,那么可是呢?还有一种情况是我只喜欢这个服务运行,你不用来跟我交货,你后台跑着就行了,那么这个时候干什么呢?我退出。
02:32
我们呢,重新来启动融护那个守护式,那么干嘛呢,请看。这个时候哈。Do卡。啊,当前是不是根本就没有正在运行任何东西啊欧啦,那么请看。刀开run杠不是it了,是D干嘛?后台运行三塔OS大家看。
03:00
没有交互窗口还是桌面?刚才说了桌面是什么?桌面是不是我们的宿主机?能跟上是我的主机,那么没有进刀卡,但是它启动过,那么这个时候你可能会想一个问题,那秒秒懂,那么这个时候大家doers,你告诉我现在我这个doer PS啊,前面讲过会不会返回这12位。有这么一个容器,大家觉得有还是没有,思考一下。好,那么各位同学,我现在到啊。觉得会有记录的。狙杀。没有记录的。击杀。拿你们那些中间不举手的干嘛呢?不知道还是不想理我好,那么这个呢,我这个小心眼的人记住了哈,你们班这几个不举手的,待会我收拾你们好好好,OK哈,好,那么各位同学。买定离少。大还是小,开了有还是没有。没有。
04:00
很奇怪吧,那没有的话,这货又怎么会返回这么一个值呢,说明是不是一定启动成功过,但是这个有一个doer的机制,我们这。甚至有第二个问题,同学们,那这个杠ID有毛意思啊,什么波?相对而言,甚至有些时候哈,交互和后台两种都需要有,那么待会儿我们后面的课程,比方到明天我们讲用刀卡容器跑他们K的时候,这块我就会给大家演示啊,有些时候干嘛需要你运行在后台,有些需要你运行在前台跟我交货,各有各的用处啊,吃西餐的时候,你说叉子重要还是勺重要,都重要好,那么这个时候呢,来。啥意思呢,我们在这儿可以看。发现容器怎么着已经退出了,干嘛很简单,有没有启动启动了,否则的话怎么会出这么一串ID,对不对,只有出正确的容器ID编号了,那么这个时候说明你肯定启动过,但是那为什么do PS啊,我查了以后什么意思啊,是do容器里面当前正在运行的。
05:05
容器实力当前正在运行的进程,那么没有啊?也就是我来过,匆匆的来,我静悄悄的走了,干嘛呢?很重要一点就是doer容器后台运行就必须要有个前台进程容器运行的命令如果不是那些一直挂起的命令,比方说top啊T的话,它就会自动退出,这个是docker的机制,它就这么设计的,比如我们的外部容器,假设我们也可以在docker上跑N,正常情下。我们配置启动服务只需要启动这个,那么大家在NX装过用过这个吧,但是这样做N为后台进程启动的模式在Linux上面没有问题,但是dota就导致前台没有运行应用,什么叫前台没有呢?那么前面我们讲run ID的时候,是不是需要有个前台交互啊,就dota你先别挂,你先别走,我要跟你交互啊,因为我们前面的时候我们说过是不是有这样的交互命令啊,我们前台有一个,所以说后台就有一个进程。
06:01
扫着,那么那个就是up的状态,但是现在呢,我只以后台的方式启动,根本就前台没有交货,就好比说一个饭店老长时间了,连个鬼都见不到,根本没有个顾客,那么这个厨师呢,就把这个灶火给停了,那么所以说。这个呢,就导致doer觉得前台没有运用这样容器呢,后台启动以后会立即自杀,因为他觉得没事可做,哎,所以说这个不是我们的错,是docker机制,所以说最佳解决方案是你将你要运行的程序以前台进程的形式运行就行了,那么好,那么这个时候那老师你给我运行一个,别着急,待会我们看,但是你这给我记着两个不一样啊。交互的用杠it,你就说穿了就是什么前台启动杠it启动以后登录进容器这个东东,不管它是什么,它都会给你返回一个带自身容器ID,自身容器ID编号的一个命令函,终端T是伪终端嘛,来代表主人,你需要用这个终端来跟我doer交互来掌控,那么第二种就是我只是渠道,不想跟你交货,我们干D,两个各有用法,待会我们说那么好,接下来马上。
07:10
来查看容器日志啊,Docker logs,哎,那么这个金鱼背上哈,它要有一个日志啊,我背上驮装载了驮着几个箱子,每个箱子里面到底是什么,那么呢,Do它有它自己的日志基础功能,大家请看主要参数有这个这个这个,那么这个呢,是Linux的tell什么意思啊,是不是尾巴,我们来吧。T是时间,F是跟随最新的日志打印,相当于说永远取最新版,Tell是显示最后多少条日志,是不是从下面一条条的追加继续往下写呀,那么来吧。请看这儿。导致doer觉得没事做,就是没有命令会挂起的话,它会自动退出,那我让他不退出不就行了吗?那么主要是给大家演示一下干地和这个,我们来请看这一句话的作用。
08:05
大家学过Linux校编程的话,那么请读一下这句话我写的什么意思?好,那么各位同学,那么大家都知道,那么杨哥呢,是最后一个老师,高级部分,尽量的培养大家的技术敏感性和模拟入职的状态,你要入职了,你可能就要去看老员工的代码,没有人再给你讲了,所以说都会给大家几秒钟半分钟来看看,自己先看懂,这个不用我讲吧,是不是以后台的形式运行center维四,那么冰杠C我要处什么意思啊,就说我应询的以号以冰下干嘛?循环的打印,这句话我要错,是不是永远是死循环,这个是不是我们的校脚本编程啊,Linux高级部分学过了干嘛呢?Do。艾,Hello,杨哥ZYY每两秒钟打印一句话,一直这么持续打印,那么言下之意,这样的话呢,说嘛,说白了就是什么,我要把这个输出打印到控制台上面,那么这样的话就会导致什么东东,前台是不是有一个响应,就算你以后台启动的话,这个刀卡是不是也不会自我关闭啊,来吧。
09:06
走了,我们来运行一次试试,那么大家请看,现在我们刀开是不是什么东东都没有好,我们这块O了,返回这么一个,那么此时我们再来看do卡,大家看。状态是什么?是不是up啊,它根本就没有停,因为为什么,因为我这有,我是后台启动了,我不想跟你有一个交互窗口,我还是想回到我宿主机,你们看桌面这个是不是叫宿主机,但是并不代表着程序不可以在后台安静的运行,那么此时我们就要看看do。查谁查某一个容器的日志,哪个容器?ID进去,大家露眼。大家看。是不是现在每隔两秒钟打了这么多,打了一串串的hello word后台有个程序跑着呀们来吧,我们把这些命令再给我加上去,什么命令呢?干T怎么来?同学们,T是干time的意思哈,加入时间老,那么现在每两秒钟打印字啊,是不是打印了这么多了?那么大家请看是不是2018年7月11号O吧,那么再来,那么杠T-F是什么意思呢?不停的追加。
10:21
大家看十四十六,下一次是不是18,因为我说过是不是每两秒钟打印一次啊,诶,那么这样大家看说明什么,我可以持续的看刀ER的日志,那么再来假设太多了,哎哟哟,晕了,看不了这么多太干嘛,我只看倒数的三海。大家看。没问题吧,刚才是不是抓出来三哈,OK,那么do log就是常用的参数,就是杠T,杠F,杠T,那么去查看doer里面某一个具体容器的日志,金鱼背上拖了十个箱子啊,每个箱子啊contain容器ID都不一样,你要去哪个箱子里面去看,金鱼都给你记着账,就这么简单哦了,好,那么接下来。
11:07
来查看容器内运行的进程。那么。什么意思呢?大家请看哈,那么我现在doer PS啊,现在大家请看我是不是还打着那个hello。周阳的那个小脚本呢,那么这个时候干什么呢?大家请看查看容器内的进程,查看进程用什么呀。是不是拓容器内那么好,大家请看Linux的这个,这个拓是不是Linux的这一步能理解那么好,但是现在我刀卡。当前正在运行的容器是这个,我要去查看。刀卡什么啊啊不不,刀卡拓,那么这个时候漏,大家请看哦,原来你这个这个容器里面这个刀卡是不是跑着,你看PID什么UIDPIPID进程附进程用户ID是不是都一样,是不是跟我们的Linux几乎是一致啊,为什么啊,再次体会注意现在我这个contain ID是什么?是不是docker里面跑着的一个精简版的圣特瑞斯啊,不要忘了这句话,杨哥前面的笔记没有一句废话,你不要觉得学理论枯燥,请看这句话,我凭什么可以用刀开拓啊,捞盐容器。
12:27
怎么说呢?可以把容器看作是一个什么简易版的Linux环境。明白了吧,所以说大部分Linux的命令在docker里面都可以使用,个别除外。明白前面我们讲了啊,Linux能用docker PS拓,Linux能用doer拓是不是都能用啊,它有相通相容器,因为doer的本质啊,这些容器跑着的,Doer身上跑着,这些容器本质上就是一个精简版,简易版的Linux环境,这堆堆都有。好,那么这个时候呢。
13:00
我们呢,再来看,往下翻,然后拓扑完了以后,我们就知道现在呢,在我这个容器里面是不是跑着那一堆一堆,那你看我要处啊,什么do echo hello z z YY跑着向杨哥问好,每两秒钟打印词的那个hello的那个语句,好,那么这用top查看了,那么再来。查看容器内部的细节。Doctorer inspect容器ID好,那么呢,熟悉杨哥讲课风格的都知道,喜欢磨耳朵先提前说干嘛呢?因为这个内容哈,是我们到后面的数据卷和容器的时候才会可对这个命令有更加深刻的理解,但是现在你们就再次跟我强调,再次给我记着,我再强调doer镜像是一层套一层,就像一个同心圆一样。那么所以说inspect是干嘛呢?查看容器内部的细节啥意思啊?整个容器你给我描述一下,它以一个阶层串的形式,嵌套的形式来给你描述,那么这个时候请看这个命令有用的啊,那么doer inspect。
14:07
这个时候干什么呢,我们查。这个当前正在运行的这个容器,来同学们,我就叫这个容器ID,那么好,你现在新建的这个容器,它的结构怎么样,大家看是不是大对阶层串,那么你看command,你实现了什么,以冰箱循环打印这么一个东东,这个脚本是不是刚才我们那个,那么言下之意包括什么,你看看你现在哇,你看这么多好多好复杂,你这个ID是不是叫这个你创建的时间,你的路径,这个所谓的路径就是你使用和登录的那个路径,你看二是不是以这么一个循环,那么言下之意inspect就以阶层串,你看这个是不是一个数组。括号这个是不是这个TVKV键制段是一个计算串的形式啊,来告诉你这个容器的全部结构细节,后续会用得到哈,这儿大家先看一个大概哈,我们来。
15:07
请看进入正在运行的容器,并以命令函交货,记着什么叫进入,前面讲过这个了吧。稍等哈。OK,但另外一种CTRLP加Q容器不停止退出,我要重新进来,那么这个时候我们呢,搂眼吧,那么呢,Doer PS,那么现在这个是不是还在运行着呢?那么还在运行着,那么来吧,同学们,我呢,Doer。T,然后直接先把它剁了。那么这个世现在这个世界清净了,什么都没有。那么请看。我重新运行一个。什么概念呢,来?如果你退出了,你有点想重新进入,或者跟新跟这个docker发生交互,主要用两个命令,Docker e CC docker attach,看我演示很重要,这两个命令,Docker rar杠、it center OS,这个不用我解释了吧,OK,那么这个时候。
16:18
干什么呢?我一回车来,同学们现在我是讲过了,我现在这一回车是不是相当于说进入到了默认的登录路径,就是根目录下面欧啦,那么呢,当然哈,你在这块你可以写啊,关干脆这样吧,我再来一次啊,也就是说你什么都不写,它就进入到它的默认根目录下面,但是呢,比方说exit我重新来哈。还有一种写法呢,是BBA,我就告诉你,我以冰需登陆,那么这个时候大家请看GWD都是可以的,能跟上,有时候你会看到一些书啊,或者是命令函上加这个,它的意思就是说你要交货,你什么命令格式,它默认就是这个,你写不写都可以好,那么这个时候呢,我登录以后,刚才讲过了exit是不是停止,那么CTRL加P好,这是什么退出不停止,所以说当前我正在。
17:16
运行的干嘛。就这个,那么你看A8AB9 8ab9退出了。没关闭,那老师我又我又想从我们的宿主机进到这个容器里面呢,那么这个时候请看do attach。然后你进哪个容器就写哪个容器IDOK。大家看是不是又进来了,进来我以后LS的杠L,那么大家看是不是查看根目录下面有哪些内容,那么LS的杠l temp是不查看容器内的,就或者叫刀卡内的这个3S精简版的这个容器。它temp目录下面有些什么鬼欧了,那么这个时候大家请看我再CTRL。
18:02
退出那么好,没有停止,那么另外一种叫dota。Ex ec能跟上,那么他干什么呢?他执行他的意思就是说。第一种,我要做什么事,我干嘛,我要进到这个容器里面再去做,比方说刚才我要做的事是不是我进到这个容器LS-l temp查了这么一个动荡,那么这种东西呢,就是我干嘛呢?EX1我在外面就执行,执行谁我在哪个容器里面执行就执行。这一个,然后你要执行一个什么轨呢?你执行什么1CC这个执行的意思啊,就是说对这个容器在宿主机外面,就要对这个容器进行什么操作,大家请看LS杠,L temp这个时候请看。Attach那个是进去到他的根目录下面,就是它默认的登录的路径,而这个呢,是执行针对这个容器。
19:00
拿这么一个命令进去给我执行,我想要直接结果,这个时候大家请看跟刚才的是不是一样啊,而且这个好处是什么呢?它根本就没有进去听懂,直接相当于说是什么隔山打牛,我进到了这个容器里面,做了这么一件事,直接拿出来结果返回给宿主机清楚,那么呢,干嘛呢?这两个的区别在这,那么大家请看哈,你加不加这个都可以听懂,那么呢,这个时候如果说你加了这个,那么再来看我们的这种东西干嘛是直接干嘛得到结果,那么假设哈。我这BBA。大家请看。有没有进来,它跟attach这个都是一样,所以说EXC的功能比attach强,Attach是进去有什么要做什么,进去以后再进去做,但是ex ec是进去做,可进去了以后在外面做好,直接拿结果也可以清楚,所以说在这块能不能我们可以看到,然后ATTACH2个的区别,直接进入容器启动命令,终端不会启动新的进程,但这个11C是在容器中,我还在外面呢,在容器中就打开新的终端,并且可以启动新的进程,好那么刚才的演示。
20:28
同学们也看到过了,它既可以进去干,那么你看,比方说我现在通过EXCC进来了,LS杠,L temp,那么大家告诉我。最终。我们呢,获得的结论是不是就是这么一个好,稍微有点小慢,等他一会。好,那么各位同学,我们继续,刚才呢,那个机器不知道为什么就卡了一下哈,那么呢,我们那个叫什么呢,就一直没出来,那么这块呢,我们重新来那么刀,那么呢,我们请看一下我们呢。
21:02
现在是不是就是这个container ID,那么根据我们刚才所讲的,你看do ex1-I,干嘛我们要运行这个,然后假设LS的杠癌了。Temp,你大家知道这个时候是不是相当于说在这个我现在在宿主期这。在外面对这个容器进行远程操作,执行这么一个命令,我直接得到这个结果,OK,还有一种呢,干嘛呢?请看BBA,我们刚才呢,就卡了一会哈,那么这个时候请看。那这次不卡了,直接进来,大家看这个是不是这种情况下就有点像我们的attach,进去以后再干活,LS杠癌。回答,我这个是不是在外面。容器外面执行,对这个在宿主机对这个容器执行这个命令获得直接。获得了结果机啊,而这一种命令呢,还是EXE,它就有点类似于什么attach,进入到我们的BBA这个命令函下面,终端提示下面干嘛,进去以后在干活,那么大家跟我讲EXE是不是?
22:12
功能要比attach强大那么一些,因为它可以在外面是不是可以远程操控,隔山打牛,直接获得我们的结果呀?好,那么这是两种进入退出以后进入刀卡容器的方法哈。那么再来。最后一个从容器内拷贝文件到主机上。那么言下之意什么?经背上的集装箱产生了一些数据,我们,但是你要明白哈,为什么会有这个呢?同学们要明白,我如果现在exit了以后什么概念刀啊怎么着,相当于说就有可能。会停止啊听懂,那么这个时候停了以后,那么呢,干什么呢,我们来。
23:00
假设我现在do stop,把这个容器给停了,什么意思啊?啊,它容器内产生的数据就没有了,但是有时候我们需要容器内的数据能够持久化,我想把它保留下来,比方说我现在这个容器里面跑了个,它有三条记录很重要,但是我现在就不想要这个容器了,我要把这个容器关了,就有点类似于我把这个集装箱要从金鱼背上卸载下来,但是当时产生的数据我想要留着,那么这时候怎么办呢?我们是不是要完成?怎么着,容器内的数据拷贝到主机上面,让主机流着呀,大海里面流着O啦,那么这个时候干嘛呢?Copy cp,那么大家看CP命令Linux有没有,命令Linux有没有,Top命令Linux有没有,那么到doer的话是不是直接干嘛,前面加doer是不是就OK了呀?好,那么这个时候请看。我们呢这么干,现在呢刀卡。这个命令活着的容器是不是这个,那么呢。
24:02
这个时候我们呢,来看。嗯。我们现在这么那这么干,那么这块的话呢,大家请看一下,嗯,当前我在这儿是不是我的宿主机,我是在root路径下面,好那么这样吧,Docker PS啊,我这个是我的容器ID,我现在来进去。刀car attach说过了,可以重新进入当前正在运行的容器,然后呢,进去进去了以后,那么假设我现在就在我的这个temp路径下面哈,那么你当是我现在呢,本来进去的时候是不是应该是在这个根目录下面,比方说进去这个哈,那么。我们这CD temp路径下面。大家看我这儿是不是有个。亚么点log这个是在什么容器里面的temp路径下面的。
25:04
要么点洛OK,我现在需要把它。拷出去考。考到我的什么?宿主机的入头路径下面,那么这个时候请看CTRLP加Q,我退出容器没有停哈,那么大家请先是宿主机的入头目录下面,大家看没有什么亚m.log吧欧了,那么这个时候do卡谁啊?那么呢要的是这个容器ID。然后呢?刀干嘛呢?Copy copy什么呢?Copy这个。容器ID冒号,这个容器ID里面哪一个temp路径下面的样点log,你拷到哪,拷到我的root下,当然如果你这想改名,比方叫ABC可以,但是这我们就。
26:00
不再多说了,这个不是重点改名,那么这个时候回车,大家请看LL。有没有,那么这个时候是不是相当于说把我们虚拟机上面docker容器里面的这个容器里面的这个路径下面的亚么点log是不是拷贝进了我们的root路径下面大家可以看,那么这个时候是不是刚刚拷贝的,那么前面我们可以对比。123公共的这三个字上面是不是根本没有logo,但是这有了,从哪来的?就是从这个容器里面拷贝进来的,OK,那么这个就是我们。相关的什么容器命令,我们呢,来看一眼,注意这有个英文小冒号好吧,好了,那么呢,辛苦同学们讲了这么多,那么这个就是非常重要的基本功刀考的容器操作,大家这些命令必须要玩的特别溜,特别赚好吧,那么呢,也希望同学们呢牢永远牢牢记得这句话。
27:00
今天你在这儿多学一样有用的本事,下个月出去是不是就可以少说一句求人的话呀?哎,好,那么接下来我们呢,需要总结一下,那么当然这些命令足以覆盖你日常工作,我在公司用的时候也就这些命令也差不多了,但是呢,如果你说老师超出你讲的范围了呢,那么这个时候不要着急,那么常用命令给大家做了总结。来,那么doer一般的命令,那么什么start kill stop,有些讲呢,有些没讲,那么inspect,那么呢,Top,那么这些RM执行命令啊,有一些呢,我们后面讲,比方说在这块,这个呃,History这些镜像的命令,那么这些是主机的命令,那么这些是容器内的命令,还有doer fair等等,有一部分呢,我们后面要讲,但是呢,有一些不重要的,比方说什么load呀,这些differ不重要的我就没讲了,有兴趣的同学那么看完,但是呢,以我所讲的这些,足够你日常用,有兴趣的同学可以看。
28:02
基本上help里面的全部命令杨哥都给大家做了翻写,这张表足够你用,OK,好吧,那么这块是不是又再次感觉到了热泪盈眶啊?总有一种感动让你眼泪中闪溢着,闪耀着一点晶莹的泪花,对吧?好,那这个时候就是我们的小总结do的常用命令。
我来说两句