目录
从虚拟化技术说起
什么是虚拟化
在计算机中,虚拟化是一种资源管理技术。将计算机的各种实体资源,如服务器、网络、内存及存储等,抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。
虚拟化种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化、桌面虚拟化、服务虚拟化、虚拟机等
虚拟化种类
全虚拟化架构
基于虚拟软件(Virtual Machine Manager)来虚拟出各种虚拟硬件(Virtual Hardward)
常见的虚拟软件(Virtual Machine Manager)有VMware和
特点是可以虚拟和宿主机不同的操作系统,比如在win10上安装了VMware,可以虚拟出windows,也可以虚拟出Linux
OS层虚拟化架构
不对硬件进行虚拟化,直接有个虚拟层(Virtualzatino Layer)
特点是运行速度快,只能虚拟出和宿主机同类(同等内核)的系统。
硬件层虚拟化
硬件层的虚拟化具有高性能和隔离性,因为hypervisor直接在硬件上运行,有利于控制VM的OS访问硬件资源。
使用这种解决方案的产品有VMware ESXi 和 Xen server。
什么是Docker
容器技术
在计算机的世界中,容器拥有一段漫长且传奇的历史。容器与管理程序虚拟化有所不同,管理程序虚拟化通过中间层将一台或者多台独立的机器虚拟运行于硬件之上,而容器则是直接运行在操作系统内核之上的用户空间。因此,容器虚拟化也被称为"操作系统级虚拟化”,容器技术可以让多个独立的用户空间运行在同一台宿主机上。
由于客居于操作系统,容器只能运行和底层宿主机相同或者相似的操作系统,例如可以在Ubuntu中运行CentOS,但无法在Ubuntu上运行Windows。
总的来说,容器类似于OS层虚拟化架构,运行原理是共享宿主机内核,只能和宿主机是同类型的系统。
Docker
Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。
Docker和虚拟技术的区别
1. 本质区别
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;
容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。
2. 使用上的区别
Docker特点
Securely build ,share and run any application ,anywhere