虚拟化与Docker

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nihui123/article/details/54580653

虚拟化技术是一个通用的概念,在不同的领域有不同的理解。在计算机领域,一般指的是计算机虚拟化(computing virtualization),或通常说的服务器虚拟化。维基百科上的定义如下:在计算机技术中,虚拟化是一种资源管理技术,是将计算机的各种实体资源,如服务器,网络,内存及存储等,予以抽象,转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以用比原本的组态更好的方式来应用这些资源。

可见虚拟化的核心是对资源进行抽象,目标往往是为了在同一个主机上运行多个系统或者应用,从而提高系统资源的利用率,同时带来降低成本,方便管理和容错容灾等好处。

从大类上分,虚拟化技术可以分为基于硬件的虚拟化和基于软件的虚拟化。其中,真正意义上的基于硬件的虚拟化技术是不多见的,少数如网卡中的单根多io虚拟化等技术,也超出我们讨论的范围。

基于软件的虚拟化从对象所在的层次,又可以分为应用虚拟化和平台虚拟化,其中,前者一般指的是一些模拟设备或者Wine这样的软件。后者又可以细分为如下几个子类:

完全虚拟化。虚拟机模拟完全的底层硬件环境和特权指令的执行过程,客户操作系统无需进行修改例如,VMware workstation 、virtualbox 、QEMU等

硬件辅助虚拟化。利用硬件(主要是CPU)辅助支持(目前x86体系结构上可用的硬件辅助虚拟化技术包括Intel-VT和AMD-V)处理敏感指令来实现完全虚拟化的功能,客户操作系统无需修改,例如VMware workstation 、Xen、 KVM。

部分虚拟化。针对部分硬件资源进行虚拟化,客户操作系统需要进行修改。现在用些虚拟化技术的早期版本仅支持部分虚拟化。

超虚拟化。部分硬件接口以软件的形式提供给客户机操作系统。客户操作操作系统需要进行修改例如早前的Xen。

操作系统级虚拟化。内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程。容器相关技术及在这范畴。

Docker虚拟化方式之所以拥有众多的优势,这个跟操作系统的虚拟化自身特点是分不开的。Docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,因此更加轻量级。

没有更多推荐了,返回首页