一:什么是container?
- 通过Image创建的
- 在Image layer之上建立一个container layer(可读写)
- 类比面向对象,类和实例,容器就是实例,Image就是类
- Image负责application的存储和分发,Container负责运行app
二.container的优点:
1.敏捷地应用创建和部署,增加了容器镜像创建的效率;
2、持续开发,集成和部署,通过快速的回滚操作提供可靠容器镜像的创建和部署;
3、开发和运行相分离,在build或者release 的阶段使应用和基础设施解耦;
4、开发,测试和生产环境的持续;
5、云和操作系统版本的可移植性,可以运行在 Ubuntu, RHEL, CoreOS, on-prem, Google Container Engine和任何其它的运行环境中;
6、提升了虚拟化的层次,从虚拟硬件上运行操作系统的抽象到操作系统中应用逻辑资源的虚拟。
三.container发展愿景:
截至目前(2016年1月),整个技术行业已经越来越多地将软件应用程序部署基础由虚拟机转移向容器。之所以出现这种趋势,一大重要原因在于容器能够提供远优于虚拟机的灵活性与使用成本。谷歌公司多年来一直在利用Borg and Omega容器集群管理平台等容器技术以实现各类谷歌应用的规模化运行。更重要的是,谷歌公司还通过实现cgroups以及参与libcontainer项目等方式为容器技术的发展做出了突出贡献。谷歌方面在过去几年当中已经利用容器技术实现了可观的性能提升、资源利用率改善以及整体执行效率优化。就在最近,微软公司这位从未将任何操作系统层级虚拟化机制引入Windows平台的软件巨头亦快速在Windows Server上实现了原生容器支持能力。
Docker、Rocket以及其它容器平台都无法运行在生产环境中的单一主机之上,这是因为它们都存在着单点故障隐患。尽管一整套容器集合能够运行在单一主机上,然而一旦该主机发生故障,所有运行于其上的容器也将全面瘫痪。谷歌公司在这方面抢先一步,凭借从Borg项目中积累到的经验打造出名为Kubernetes的开源容器集群管理系统。Docker公司也针对这一难题开发出了Docker Swarm解决方案。目前,这些解决方案尚处于早期发展阶段,而且可能还需要数月甚至一年才能真正具备完整的功能集,从而以稳定及广泛的方式被引入容器行业的生产环境当中。
微服务则是另一项突破性技术成果,而不仅仅是一套利用容器机制实现自身部署的软件架构。虽然微服务的概念算不上什么新鲜事物,但这种Web服务的轻量化实现机制确实能够提供远超过标准Web服务的启动速度。之所以能够实现这项目标,是因为其将一整套功能单元以打包方式(可能包括单一服务/API方法)整合在一项服务当中,再将服务嵌入一套轻量化Web服务器二进制文件。
考虑到以上背景信息,我们可以预测在未来几年当中,容器技术将逐步取代虚拟机甚至能够在一定程度上彻底占据其适用环境。去年,我曾经帮助多家企业立足于POC层级部署基于容器的解决方案。当时他们几乎还都不想把容器引入生产环境。然而这种状况可能随着容器集群管理系统的逐步成熟而快速得到扭转。
本文部分转自:http://cloud.51cto.com/art/201602/505113.htm