容器进化史
ddatsh
容器技术和云原生就是一对双螺旋体,容器技术催生了云原生思潮,云原生生态推动了容器技术发展
容器技术和虚拟机,都是 资源隔离的虚拟化技术
timeline title Container 1979: Chroot 2000 : FreeBSD Jails 2004 : Solaria Containers 2005 : OpenVZ 2007 : CGroups 2008 : LXC 2013 : Docker 2014 : Rocket 2016 : Windows Containers 2017 ~ : K8S
graph LR A[UNIX chroot] --> B(FreeBSD Jails) B --> C[Linux VServer,Solaris Containers] C --> D[OpenVZ] D --> E[Google cgroups] E --> F[LXC] F --> G[Docker]
容器进化史
-
UNIX chroot 系统调用,将进程根目录改变到一个新位置,达到进程隔离目的
-
FreeBSD 容器技术 Jails(“监狱”,沙盒更为准确),fs、user、network、process等隔离
-
Linux 容器技术 Linux VServer,2004 Solaris Containers,资源进行划分,形成 zones,虚拟服务器
-
OpenVZ,Linux 内核补丁提供虚拟化支持,完整支持文件系统、用户及用户组、进程、网络、设备和 IPC 对象的隔离
-
Google 实现 Control Groups( cgroups ),加入 Linux 内核,划时代,为后期容器的资源配额提供了技术保障
-
cgroups 和 linux namespace 推出第一个最为完善的 Linux 容器 LXC
-
最流行和使用最广泛的容器 Docker,引入容器管理的生态系统,包括分层的镜像模型,容器注册库,友好的 Rest API
-
CoreOS 推出类似 Docker 的容器 Rocket,CoreOS 更加轻量级的 Linux
-
微软在 Windows 提供了容器的支持,Docker 可以以原生方式运行在 Windows 上,而不是需要使用 Linux 虚拟机
-
容器技术已经很成熟了,再往后就是容器云的发展,衍生出多种容器云的平台管理技术,kubernetes 最为出众
有这样一些细粒度的容器集群管理技术,也为微服务的发展奠定了基石
对于未来来说,应用的微服务化是一个较大的趋势
为什么要容器
货物运输问题,如何将不同的货物放在不同的运输机器上,减少因货物的不同而频繁进行货物的装载和卸载,浪费大量的人力物力
集装箱,将货物根据尺寸形状等的不同,用不同规格的集装箱装载,然后再放到运输机上运输
集装箱密封,只有货物到达目的地才需拆封,在运输过程能够在不同运输机上平滑过渡,避免了资源的浪费