和虚拟机一样, 容器技术也是一种资源隔离的虚拟化技术. 我们追溯它的历史, 会发现它的技术雏形早已有之.
容器简史
容器概念始于 1979 年提出的 UNIX chroot, 它是一个 UNIX 操作系统的系统调用, 将一个进程及其子进程的根目录改变到文件系统中的一个新位置, 让这些进程只能访问到这个新的位置, 从而达到了进程隔离的目的.
2000 年的时候 FreeBSD 开发了一个类似于 chroot 的容器技术 Jails, 这是最早期, 也是功能最多的容器技术. Jails 英译过来是监狱的意思, 这个 "监狱"(用沙盒更为准确) 包含了文件系统, 用户, 网络, 进程等的隔离.
2001 Linux 也发布自己的容器技术 Linux VServer,2004 Solaris 也发布了 Solaris Containers, 两者都将资源进行划分, 形成一个个 zones, 又叫做虚拟服务器.
2005 年推出 OpenVZ, 它通过对 Linux 内核进行补丁来提供虚拟化的支持, 每个 OpenVZ 容器完整支持了文件系统, 用户及用户组, 进程, 网络, 设备和 IPC 对象的隔离.
2007 年 Google 实现了 Control Groups( cgroups ), 并加入到 Linux 内核中, 这是划时代的, 为后期容器的资源配额提供了技术保障.
2008 年基于 cgroups 和 linux namespace 推出了第一个最为完善的 Linux 容器 LXC.
2013 年推出到现在为止最为流行和使用最广泛的容器 Docker, 相比其他早期的容器技术, Docker 引入了一整套容器管理的生态系统, 包括分层的镜像模型, 容器注册库, 友好的 Rest API.
2014 年 CoreOS 也推出了一个类似于 Docker 的容器 Rocket,CoreOS 一个更加轻量级的 Linux 操作系统, 在安全性上比 Docker 更严格.
2016 年微软也在 Windows 上提供了容器的支持, Docker 可以以原生方式运行在 Windows 上, 而不是需要使用 Linux 虚拟机.
基本上到这个时间节点, 容器技术就已经很成熟了, 再往后就是容器云的发展, 由此也衍生出多种容器云的平台管理技术, 其中以 kubernetes 最为出众, 有了这样一些细粒度的容器集群管理技术, 也为微服务的发展奠定了基石. 因此, 对于未来来说, 应用的微服务化是一个较大的趋势.
- reference:
- http://www.cnblogs.com/CloudMan6/p/6751516.html
来源: https://www.cnblogs.com/bakari/p/8868850.html