购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 容器简史

初步了解了Docker,我们一起来追溯一下容器的发展历史。和虚拟机一样,容器技术也是一种资源隔离的虚拟化技术,算不上新技术,其技术雏形早已有之。

容器概念始于1979年提出的UNIX chroot,chroot是一个UNIX操作系统的系统调用,将一个进程及其子进程的根目录改变到文件系统中的一个新位置,让这些进程只能访问到这个新的位置,从而达到进程隔离的目的。

2000年FreeBSD开发了一个类似于chroot的容器技术Jails。这是最早期,也是功能最多的容器技术。Jails翻译过来是监狱的意思,这个“监狱”(用“沙盒”更为准确)包含了文件系统、用户、网络、进程等的隔离。

2001年Linux发布了自己的容器技术Linux VServer。2004年Solaris发布了Solaris Containers。两者都将资源进行划分,形成一个个zones,又叫作虚拟服务器。

2005年推出OpenVZ,通过对Linux内核进行补丁来提供虚拟化的支持,每个OpenVZ容器完整支持了文件系统、用户及用户组、进程、网络、设备和IPC对象的隔离。

2007年谷歌实现了Control Groups(Cgroups),能够限制和隔离一系列进程的资源使用(CPU、内存、磁盘I/O、网络等)。同年,Cgroups被加入Linux内核中,这是划时代的,为后期容器的资源配额提供了技术保障。

2008年基于Cgroups和Linux Namespaces推出了第一个最为完善的Linux容器LXC。LXC指代的是Linux Containers,其功能通过Cgroups和Linux Namespaces实现,也是第一套完整的Linux容器管理实现方案。

2013年DotCloud(后更名为Docker)推出了到现在为止最为流行和使用最广泛的容器Docker,其理念是,“一次构建,随处运行”。Docker在起步阶段使用LXC,而后利用自己的libcontainer库(谷歌工程师一直在与Docker合作研发libcontainer,并将核心概念和抽象移植到了libcontainer)将其替换下来。相比其他早期的容器技术,Docker引入了一整套与容器管理相关的生态系统,其中包括一套高效的分层式容器镜像模型、一套全局及本地容器注册表、一个精简化REST API以及一套命令行界面等。

2014年CoreOS推出了一个类似于Docker的容器Rocket。CoreOS是一个更加轻量级的Linux操作系统,Rocket在安全性上比Docker更严格。

2016年微软在Windows上提供了对容器的支持,Docker可以以原生方式运行在Windows上,而不需要使用Linux虚拟机。

至此,容器技术趋于成熟,并且迎来了容器云的发展,由此衍生出多种容器云的平台管理技术,其中以Kubernetes(一个容器编排平台)最为出众。这些细粒度的容器集群管理技术为微服务的发展奠定了基石。

容器技术的出现是历史的必然,是技术演进的一种创新结果,也是人们追求高效生产活动的一个解决方案、思想、工具和愿景。 8nawlp6hKjnQUkLd3//ZNnr+22KqpsLBhfspqKYTRmC4p17QA5lTvghiVLaO2o8U

点击中间区域
呼出菜单
上一章
目录
下一章
×