Docker学习笔记02:Docker与虚拟化

2024-11-04 05:46:46

1、虚拟化(Virtualization)技术是一个通用的埂琴逾癌概念,在不同领域有不同 的理解。在计算领域,一般指的是计算虚拟化(Computing Virtualizatio荏鱿胫协n),或通常说的服务器虚拟化。维基百科上的定义如 下:“虚拟化是一种资源管理技术,是将计算机的各种实体资源,如服务 器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的 不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。”可见,虚拟化的核心是对资源的抽象,目标往往是为了在同一个主机上 同时运行多个系统或应用,从而提高系统资源的利用率,并且带来降低成 本、方便管理和容错容灾等好处。从大类上分,虚拟化技术可分为基于硬件的虚拟化和基于软件的虚拟 化。其中,真正意义上的基于硬件的虚拟化技术不多见,少数如网卡中的单 根多IO虚拟化(SingleRootI/OVirtualizationandSharingSpecification,SR-IOV)等技术,也超出了本书的讨论范畴。基于软件的虚拟化从对象所在的层次,又可以分为应用虚拟化和平台虚 拟化(通常说的虚拟机技术即属于这个范畴)。其中,前者一般指的是一些 模拟设备或诸如Wine这样的软件。后者又可以细分为如下几个子类:

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

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

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

5、准虚拟化(paravirtualization)。 部分硬件接口以软件的形式提供给客户机操作系统,客户操作系统需要进行修改,例如早期的Xen。

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

7、可见,Docker以及其他容器技术,都属于操作系统虚拟化这个范畴,操 作系统虚拟化最大的特点就是不需要额外的supervisor支持。Docker虚拟化方式之所以有众多优势,这与操作系统虚拟化技术自身的设计和实现是分不开的。下图比较了Docker和常见的虚拟化方式的不同之处:

Docker学习笔记02:Docker与虚拟化
猜你喜欢