一、什么是虚拟化技术

将服务、网络、内存、存储等计算机资源予以抽象,打破实体不可分割障碍的技术。

1. 硬件虚拟化

硬件物理平台提供的,提供指令截取重定向的支持。

  • Intel-VT
  • AMD-V(对x86处理器系统架构)

2. 软件虚拟化

  • 有些不强依赖于硬件支持。如:QEMU
  • 有些依赖于硬件支持,如:VMWare、KVM。

分类

类别 解释
完全虚拟化(Full Virtualization) 虚拟机模拟完整的底层硬件环境特权指令的执行过程。
硬件辅助虚拟化(Hardware-assisted Virtualization) 通过硬件辅助支持模拟运行环境。
部分虚拟化(Partial Virtualization) 只针对部分硬件资源进行虚拟化。
平行虚拟化(Para-Virtualization) 不需要模拟硬件,而是将部分硬件接口以软件的形式提供给客户机操作系统
操作系统层虚拟化(OS-level virtualization) 操作系统内核虚拟化,可以允许使用者空间软件实例被分割成几个独立的单元

常见的虚拟化技术

  • Xen,剑桥大学开源虚拟机监视器,采用ICA协议的半虚拟化技术。
  • KVM,Linux内核模块,全虚拟化解决方案。
  • LXC,即Linux Container,轻量级虚拟化手段。
  • OpenVZ,基于Linux平台的操作系统级服务器虚拟化解决方案。
  • Hyper-V,微软,可以采用半虚拟化或全虚拟的方式创建虚拟机
  • Oracle VM,Oracle,继续开源Xen。
  • VMWare。
  • VMWare ESX Server。

二、Docker虚拟化

1. 什么是Docker?

开源的应用容器引擎,开发者可以打包应用及依赖到一个可移植的容器,然后发布到任何安装了Linux发行版的机器上。基于LXC实现,是一个操作系统级别的虚拟化技术。

是一个可直接运行在宿主机操作系统上的容器。使用沙箱机制完全虚拟出一个完整的操作。容器之间不会有任何接口,使得容器与宿主机、容器与容器隔离更彻底。

2. Docker的作用

1) 简化配置

2) 代码流水线管理

3) 提高开发效率

4) 隔离引用

5) 整合服务器

6) 调试能力

7) 快速部署

3. 与虚拟机对比

虚拟机和Docker对比.jpg