Docker的基础
虚拟化技术
虚拟化分类
- 硬件级虚拟(hardware-level-virtualization)
- 操作系统级虚拟 (os- level操作系统级虚拟 (os- level virtualization)
虚拟化管理软件
面向硬件级虚拟化
硬件级虚拟化是运行在硬件之上的虚拟化技术,它的管理软件为hypervisor 或者 virtual machine monitor。 这种软件需要模拟的是整个系统(包括硬件以及操作系统), 这种技术就是现在的Hyper-V 虚拟化技术。目前主流的虚拟机软件如 VMWare, Xen, VirtualBox, AWS EC2 乃至阿里云的 ECS 都是基于这个技术。
面向操作系统级虚拟化
管理面向操作系统的虚拟化的软件为运行在操作系统上的软件,这个软件将会管理在系统里被虚拟化的多个不同进程。而这种软件通常也被称作容器。而docker就是这种软件中的佼佼者。
Docker 发展历史(操作系统级虚拟化软件历史)
书中同时提到了硬件级虚拟化和操作系统级的虚拟化历史,但是因为硬件级虚拟化与docker的关联较少所以此博客不再摘录
- 1982年,chroot 是最早的操作系统级虚拟化软件,并直到现在都作为一个系统调用工具。chroot的功能为改变运行进程的目录,并限定进程的工作全在该目录内完成。该软件最大的作用为将文件系统层隔离。
- 2000年,FreeBSD jail 真正意义上的操作系统级虚拟化软件,也是最早的虚拟容器。
- 2005年,Open VZ,一款在Linux上实现的容器化技术也是Docker最初的容器技术核心。
- 2008年,LXC正式发布,也是Docker 第一次实现具体内核功能。
- 2013年,Docker发布,但基本上是LXC的拓展。
云计算服务模式
随着云概念的出现相比较以往的实体服务器交易,服务交易的利润更加高而且有持续性。而这些服务大致分为以下四类:
- 基础设施即服务(Infrastructure as a service)
- 在云端为用户提供基础设施,如虚拟机、服务器、存储、负载均衡以及网络。以国外亚马逊的AWS 和国内阿里云为佼佼者。
- 平台即服务(Platform as a service)
- 在云端为用户提供可执行环境、数据库、网站服务器或者开发工具等的云端服务。主要供应者有OpenSHift、 Red Hat、 Cloudera 、 Cloud Foundry 、 Google App Engine以及 dotCloud。
- 软件即服务(Software as a service)
- 在云端提供各类软件如CRM系统、邮件系统、在线协作或办公。比较知名的产品有Office365和Google doc。
- 容器即服务(Container as a service)
- 从基础设施即服务(IaaS)衍生而成,用容器代替了虚拟机。因为容器比较轻量,所以器资源利用率还有性能都比IaaS高。