00:00
好,同学们,我们继续,那么通过前面我们已经明白了docker的理念,以及它出现以后解决的问题和痛点,那么接下来我们慢慢的要深入多开的原理和它的一些概念啊,不是一上来就教大家安装,学一大堆简单的操作命令,那这个时候的话,你只是学会了一些正确的操作。那么这个时候你很难成为一个真真正正的云岩山下面的。Develop开发工程师OK,那么至于说这些概念是什么,我们后面聊,那么下面我们先来扯一道面试题。请问。容器和虚拟机有什么不同?谈谈两者的比较。哎,这些概念希望大家呢,夯实自己的基础,以后我们从第二章开始会带着大家进行实际的案例的编码和操作工作,但是一开始啊,咱们先把这些理念整明白。初学入门,扎好马步,稳步向前走,那么首先啊,那么同学们看一下。
01:06
容器发展简史在没有刀ER的时候,那么大家什么情况下听到了容器这个概念?那么我相信在之前大家一定学过一个技术叫spring,老师是不是经常念到这个东西叫spring容器?那么请问那个spring容器它放的是些什么东东?我们对比着来理解,还来学习,是不是我们的一个一个的病啊?对吧,我们通过依赖注入,还有我们的什么IOC啊,AOC啊等等,让这个容器呢里面的各个并达成业务功能,小扳手完成我们的工作,那么一样,既然是容器容器,对吧,它一定要装个什么,那么来看看同学们,我们结合前面多卡的理念来看看。对于我们容器安装和构件,它的发展是这样的,刚开始放在磁碟上,然后放在一些卡太机上面,然后再到我们的虚拟机,现在到了我们的多卡,那么doer上面,根据前面的介绍,它呢又能放一些什么东东呢?那么同学们。
02:15
看一下。静态的外部网站、用户的数据库、前端消息、中间件队列以及动态数据源等等。Do卡几乎能够把前面通通替代,那么现在我们就要明白,Do卡它首先是一种容器虚拟化技术。我在开发环境,把我能够运行的源码配置。第三方依赖的插件扔到集装箱里面。然后运送的时候拉出去跑到刀口上面运行,你箱子里面装的什么,打开的时候依旧是什么,井井有条,依法运行,不会进去的时候装只猫,出来时候跳出来一只鸭,那么这个不大可能,所以呢,我们这样有必要了解传统的虚拟机,也就是大家所学过的VMV和我们现在要讲的容器虚拟化技术,诶,它们两者到底有什么样的关联?
03:12
来,同学们看一眼。虚拟机。VM,那么就是带环境安装的一种解决方案啊,就是doer呢,是基于它更进一步,更清洁更简洁的。一套操作解决方案,那么首先大家请看,先回到我们的V。那么首先在一种操作系统里面运行另外一种操作系统,不废话,大家从上硅谷教学,我们在Windows下面工作,专了特瑞七学Linux,那么现在是不是WIN10上面?可以操作Linux OK,那么。对于我们这个操作系统而言呢。对此呢,是没有什么感知的,因为虚拟机看上去和真的一模一样,那么对于我们的底层系统来说,虚拟机只不过是个普通文件。不需要了,删掉其他部分不影响,那么这类虚拟机就完美的模拟了另外一套操作系统,能够在应用程序、操作系统和硬件三者之间达到平衡,逻辑不变,那么结合我们目前已掌握的知识,虚拟机上面装我们的生态瑞七,那么这样的话呢?
04:19
WIN10操作系统是大家的基本盘,你在上面装了一个虚拟机软件,你模拟出了一个什么呢?那么我们装了一个ISO镜像文件,对吧,模拟我们的生态,如七操作系统,在这个操作系统实例上面,我们完成了各种CPU、内存、网络的配置,申请硬盘空间,安装软件等等等等,最终启动一个虚拟机实例,那么现在大家都清楚啊,我现在相当于说三号机,四号机是不是两台三台子机啊,OK,那么所以说。我们传统虚拟机。它是安装在主操作系统上面的,那么这一大堆模拟虚拟出各种硬件,注意含什么硬件,那么我就问一嘴硬件大不大来。
05:02
在虚拟机上面安装从操作系统。WIN10上面装虚拟居,又装了个同操作系统三特二七学习Linux,那么这个呢,都是大家所熟悉的,那么所以说我们这儿就可以看到自底向上,我们呢,这个是我们的基础设备是吧?个人电脑在这儿hyper works,那么相当于我们的VB或者VM虚拟机的软件,那么在这个虚拟软件读进去,我们的ISO镜像文件模拟出一个一个的。什么操作系统?那么这个时候请看ABC,假设这是一个U盘图,这是一个什么?Center OS啊,这个呢,是一个红帽Linux,那么三个不同的操作系统,那么是不是虚拟出来的,从操作系统我们在这个每一个实例上面又进行我们的安装配置,OK,那么这个就是我们原先的一套,那么大家想一下这套。是可以解决我们的什么问题?带环境安装这样的一种软件解决方案。那么请问。
06:04
它的痛点是什么?那么思考一下,给大家十秒钟,我先暂停一下。首先。缺点,以下三个资源占用多,冗余步骤多,启动慢。那么同学们都用过,如果我要启动一个虚拟机实例的话。从我点到最后弹出登录界面,输入用户名和密码,坦白讲没个三五分钟下不来,贼慢,这是第一个,第二个,大家想一下,这么一个ISO文件,它是模拟了整套操作系统,从内核,硬件,软件,确确实实实在环境安装了,绝对没有任何问题,但这个呢,太猛了,基本上非常大,所以说这个时候就会导致你一个虚拟机器开。又慢。占用资源又多,所以说一般Java兄弟如果到后面学虚,又开了虚拟机,又开了ID,再做微服务的编码,没有个16G的内存是跑不动的,所以说这是它的三个明显缺点,那么接下来我们来看看,有这个痛点以后我们就思考。
07:11
我现在。传统的话,那么比方说santa os7。对吧,我跑在一个虚拟机上面,假设这是A。好了。那么现在。我们来看看。BC假设我就三台虚拟机,我就三台。三套二七。没问题,确实是环境啊,什么都弄过来了,可是这个七上面啊,比如说我现在启动它,我上面跑一个啊,我启动它我上面呢跑一个MYQ。这个时候大家想一个问题。我们可不可以在这省点功夫?偷奸耍滑一下,如果我们有一种思想,A是ready b是MYQC是mango DB。那么现在确实是三个不同的软件实验,但是他们都跑在一台。
08:05
327上面我是不是可以节约很多资源和成本。那么换句话说,如果。我可以复用一个生态七。那么在这个上面同时跑ABC,不要再启动另外两个。我只用最小巧的。Linux必须的内核。支撑我的软件。那么这样是不是就可以步子比较轻,负担比较小,启动比较快呀。那么基于此。容器虚拟化。那么。解决的就是传统虚拟机的痛点,他这么玩大家请看。由于前面我们说过虚拟机存在的缺点,Linux的想了一个兆叫LXC,俗称Linux容器。
09:01
那么呢,它呢,与系统其他部分隔离开的一系列进程啊。干嘛从另外一个镜像运行。并由该镜像提供支持进程所需的什么全部文件,那么容器提供镜像就包含了应用所依赖的全部内容,那么整个过程从开发到测试,它都具备了一致性和一致性,什么意思啊?说人话。在这块。小巧的Linux所必须支撑的内核,我尽量少的加载,用得到的我加载,那么其效果就是Linux容器,它不必要模拟一个完整的操作系统,那么现在前面我们传统的虚拟机来一个实例,就是整个操作系统就给你搬过来,不管你用得到用不到的,一锅全给你上。那么现在我只想运行一个什么。跑在Linux环境下面的一个RA实例,那么这样的话呢,我们呢,就可以用容器这种技术将软件运行所需要的所有资源打包成一个隔离的容器当中。
10:08
那么这个时候我不再需要捆绑一整套的操作系统,那么只需要该软件工作所必要的库和资源,也就是我这儿所说的最小的Linux。所需要的环境,那么这样系统会变得清亮,并且部署的任何环境中软件都能始终如一运行。那么大家请看啊,和前面的不一样。这个还是我们的笔记本硬件。这个呢,是我们的WINDOWS10操作系统,大家请看我没有在什么啊。装虚拟机了,我装一个do。在doer上面隔进行什么隔离,我们大家共用这么一份刀引擎,你在上面,这个就是那头金鱼。拖着一个一个的集装箱,Red mango DB等等,那么这样的话我变得小巧而清亮,换句话说,多卡容器是在操作系统层面上实现了虚拟化,直接你看这两个字啊,怎么着复用本地主机的操作系统,而传统的虚拟机是在硬件层面实现虚拟化,你大方面的整个给我端了。那么所以说传统虚拟机相比doer的优势体现在轻量级,速度快,占用资源系统少。
11:24
那么最终两个可以做一个对比。对于我们的虚拟机而言。比较大倒卡。较小。对于它的启动速度而言,这个比较慢,这个飞快,对于它的复杂度而言,虚拟机用得到用不到的,整套操作系统给你模拟出来,而doer只需要你给我所需的那个最小内核,能运行起这个软件的就够了,其他的多的我不要,所以说他们两者。传统虚拟机虚拟出一套硬件及操作系统,然后它运行的是一个完整的操作系统,在系统上面再运行所需的应用程序,Red啊,MYSQL等等,而容器呢?
12:06
Do呢,就一条大金鱼,上面一个一个的容器,实列my red engine等等等等,直接运行于宿主机的内核,那么相当于我这儿是不是就完成了一种东西叫复用啊?那么OK,容器内没有自己内核,且没有进行硬件虚拟,100%是不是要比上面传统的要轻亮很多,因此容器要比传统虚拟机更为轻便。那么每个容器之间互相隔离,集装箱嘛,肯定是隔离的,每个容件有自己的一套文件系统,我们之间不会互相影响,虽然说red。Mango dbn都装在同一条金鱼背上,都在同一个刀引擎上运行,我们是隔离的,不会相互影响,能够区分计算资源,OK,所以说这个就是我们容器和传统虚拟机相关的比较。
我来说两句