【Docker】进阶之路:(一)容器技术发展史
- 什么是容器
- 为什么需要容器
- 容器技术的发展历程
- Docker容器是如何工作的
什么是容器
容器作为一种先进的虚拟化技术,已然成为了云原生时代软件开发和运维的标准基础设施。在了解容器技术之前,我们先来了解一下虚拟化技术。
什么是虚拟化技术?
计算机历史上首个虚拟化技术实现于1961年,IBM709计算机首次将CPU占用切分为多个极短(1/100sec)的时间片,每一个时间片都用来执行不同的任务。通过对这些时间片的轮询,这样就可以将一个CPU虚拟化或者伪装成为多个CPU,并且让每一颗虚拟CPU看起来都是在同时运行的。这就是虚拟机的雏形。
为什么需要容器
拟化技术已经成为一种被大家广泛认可的服务器硬件资源共享方式。实际上,与传统的虚拟机相比,容器有着明显的区别。
虚拟机管理系统通常需要为虚拟机虚拟出一套完整的硬件环境,此外,在虚拟机中,通常包含整个操作系统及其应用程序。从这些特点来看,虚拟机与真实的物理计算机非常相似。因为虚拟机包含完整的操作系统,所以虚拟机所占磁盘容量一般都比较大,一般为几个GB。如果安装的软件比较多,则可以占用几十,甚至上百GB的磁盘空间。虚拟机的启动相对也比较慢,一般为数分钟。
容器技术的发展历程
在大致理解了虚拟化技术之后,接下来我们可以了解一下容器的诞生历史。虽然容器概念是在Docker出现以后才开始在全球范围内火起来的,但在Docker之前,就已经有无数先驱在探索这一极具前瞻性的虚拟化技术。
先来看看容器技术发展的历史纪年表:
- 1979年,Unix v7系统支持chroot,为应用构建一个独立的虚拟文件系统视图。
- 1999年,FreeBSD 4.0支持jail,第一个商用化的OS虚拟化技术。
- 2004年,Solaris 10支持Solaris Zone,第二个商用化的OS虚拟化技术。
- 2005年,OpenVZ发布,非常重要的Linux OS虚拟化技术先行者。
- 2004 ~ 2007年,Google内部大规模使用Cgroups等OS虚拟化技术。
- 2006年,Google开源内部使用的process container技术,后续更名为Cgroup。
- 2008年,Cgroups进入了Linux内核主线。
- 2008年,LXC(Linux Container)项目具备了Linux容器的雏型。
- 2011年,CloudFoundry开发Warden系统,它是一个完整的容器管理系统雏型。
- 2013年,Google通过Let Me Contain That For You(LMCTFY)开源内部容器系统。
Docker容器是如何工作的
Docker容器和传统VM在技术实现上有所不同。下图 1-3显示的是VM与Docker容器的逻辑组成: