虚拟化介绍
虚拟化概念
虚拟化是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在互相独立的空间运行而互不影响,从而显著提高计算机的工作效率。
虚拟技术分类
- 从技术角度分类
- 完全虚拟化技术
完全虚拟化技术又叫硬件辅助虚拟化技术,它在虚拟机(VM)和硬件之间加了一个软件层–Hypervisor(虚拟机监控器(VMM))
- 半虚拟化技术/准虚拟化技术
半虚拟化技术在全虚拟化技术的基础上对客户操作系统进行了修改,增加了一个专门的API,这个API可以将客户操作系统发出的指令进行最优化,即不需要Hypervisor耗费一定的资源进行翻译操作,因此Hypervisor的工作负担变得非常小,提升整体性能。
- 完全虚拟化技术
- 从架构角度分类
- 寄居架构
在操作系统之上安装和运行虚拟化程序,依赖于主机操作系统对设备的支持和物理资源的管理。
软件举例:Workstation,VMware Server - 裸金属架构
直接在硬件上安装虚拟化软件,再在其上安装操作系统和应用,依赖虚拟层内核和服务器控制台进行管理。
软件举例:VMWare ESXI Server
- 寄居架构
Docker简介
Docker背景
Docker是dotcloud公司开源的一款产品,主要基于PAAS(Platfrom as a Service)平台为开发者提供服务。Docker是一个基于LXC的高级容器引擎,用go语言开发,并遵循Apache2.0协议开源,源代码托管在GitHub上。
Docker与传统虚拟化技术的区别
- 传统虚拟化技术
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程 。各虚拟机上的应用程序由操作系统隔离。 - Docker技术
docker容器中的应用程序全都运行在docker引擎之上,docker容器应用程序之间由进程隔离。
Docker构成
- Docker仓库
官方仓库地址:https://hub.docker.com - Docker自身组件
- Docker Client
顾名思义,Docker的客户端。 - Docker Server
Docker daemon的主要组成部分,接受用户通过Docker Client发出的请求,并安装相应的路由规则实现路由分发。 - Docker 镜像
Docker镜像由多个层组成,内部包含一个精简的操作系统以及应用运行必须的文件和依赖包。Docker镜像运行之后变成容器。
- Docker Client