- 1、云计算中虚拟化技术和容器技术到的关系
- 2、虚拟机和容器对比
- 3、虚拟化技术和容器技术区别
通过一个关于房间和住人的小问题,我们来初步的理解一下虚拟化技术和容器技术的关系。
首先有一个大前提就是一个房间只允许一家人来住。这个房间很大,500平米,有床、有厨房、有卫生间。你一家一共就3口人,就你一家人住,别人家只好再找房子,好浪费,资源利用率好低啊。(房子就相当于计算机的硬件基础)
首先是虚拟化上场了,把这个大房子从隔成20间小房子。注意不是那种真砌墙的方式来分隔,而是比如拉上布帘的方式。(不是把硬件真正的分割,而是按需求,虚拟分割。)注意,每个小“房间”是一个独立的空间,都有床、有厨房、有卫生间。这样就可以住20户人家了。这样资源利用率真就提高了,但还是有问题,厨房、卫生间并不是这20家人都会同时使用的啊。(厨房、卫生间相当于Guest OS
和Host OS
操作系统)
此时,该容器上场了!还是刚才500平的那个大房间。容器也是分隔,由于并不是每家人都要同时使用厨房、卫生间。所以可以把刚才的房间隔成50间,每家只有床是独立的。厨房和卫生间则采用公共的,按使用情况进行分配即可。这样就能住50家人了,资源利用率真就大大提高了。(只留下Host OS
操作系统,去掉了占用过多无效资源的Guest OS
操作系统)
所以说,容器是一种轻量级的虚拟化技术,在同等配置的服务器上,容器技术能够轻松更多的应用。对于每一个容器,他们其实是使用同一个宿主机的内核和系统库文件(相当于刚才说的公开卫生间和厨房)。
2、虚拟机和容器对比这里我们直接通过虚拟机和容器技术的剖析图来分析,就更容易看出容器虚拟化是如何在效率上完胜虚拟机的。
下面两张图很清楚的说明了虚拟机和容器差别:
由于没有了虚拟操作系统和虚拟机监视器这两个层次,大幅减少了应用程序运行带来的额外消耗。
更准确的来说,所有在容器中的应用程序,其实完全运行在了宿主操作系统中,与其他真实运行在其中的应用程序,在指令运行层面是完全没有任何区别的。
下表总结了使用Docker容器技术与传统虚拟机技术的特性比较。
3、虚拟化技术和容器技术区别传统虚拟化技术从操作系统层下手,目标是建立一个可以用来执行整套操作系统的沙盒独立执行环境,习惯以虚拟机(Virtual Machine
)来称呼。
Container
技术则是直接将一个应用程序所需的相关程序代码、函式库、环境配置文件都打包起来建立沙盒执行环境,Container
技术产生的环境就称为Container
。
(1)两者具体区别
- 虚拟机需要安装操作系统(安装
Guest OS
)才能执行应用程序,而Container
内不需要安装操作系统就能执行应用程序 Container
技术不是在OS
外在建立虚拟环境,而是在OS
内的核心系统层来打造虚拟执行环境,透过共享Host OS
的作法,取代一个一个Guest OS
的功用。Container
也因此被称为是OS
层的虚拟化技术。
(2)Container是轻量级虚拟化技术
Container
技术采取共享Host OS
的作法,而不需在每一个Container
内执行Guest OS
,因此建立Container
不需要等待操作系统开机时间,不用1分钟或几秒钟就可以启用,远比需要数分钟甚至数十分钟才能开启的传统虚拟机来的快。
【文章转自:美国站群服务器 http://www.558idc.com/mgzq.html处的文章,转载请说明出处】参考:
- https://www.toutiao.com/a6776169348064084484/
- https://www.cnblogs.com/JetpropelledSnake/p/10315050.html