1.容器技术
容器技术指通过在物理主机操作系统上创建一个一个孤立的分组,同时把物理主机操作系统上的资源划分到各个分组中,并且平衡各个分组之间有冲突的资源使用需求。比起传统的虚拟化技术,容器技术更好地实现了在同一硬件上运行更多工作负载。得益于容器引擎的强大功能,各个应用之间可以共享物理主机操作系统的资源同时又可以保持相互独立。

2.容器技术有哪些
目前业界4种主流容器引擎即Docker、Containerd、iSulad和balenaEngine。
(1)Docker
是一个开源的应用容器引擎,基于Go语言开发并遵循了Apache2.0协议开源。Docker可以让开发者将应用和依赖包打包到一个轻量级、可移植的容器中,发布到任何流行的Linux服务器。
(2)Containerd
2016年,Docker 把负责容器生命周期的模块拆分出来捐赠给CNCF社区,这便是
Containerd的前身,后社区为其添加了镜像管理模块和CRI模块,使得Containerd具备支持kubelet创建Pod所需的全部功能。目前,Containerd已经成为了一个工业级容器技术了,采用标准的C/S架构,服务端通过GRPC协议提供稳定的API,客户端通过调用服务端的API进行高级的操作。开发人员或者终端用户可以在宿主机中管理完整的容器生命周期,包括容器镜像的传输和存储、容器的执行和管理、存储和网络等。
(3)iSulad
iSula是华为开源的一种云原生轻量级容器解决方案,可通过统一、灵活的架构满足ICT领域端、边、云场景的多种需求。iSulad
是iSula技术链中的通用容器引擎,它提供统一的架构设计来满足CT和IT领域的不同需求。
(4)balena Engine
是Balena.io公司推出的一-款与Docker兼容的用于嵌入式设备上的容器引擎,专门针对嵌入式和loT用例而构建,并且与Docker容器兼容。balenaEngine基于Docker的Moby
Project,支持容器增量,二进制文件更小,更保守地使用RAM和存储,并专注于容器抽取的原子性和持久性。

3.容器技术与虚拟技术的区别
在云计算环境下,虚机与容器都是虚拟化资源的具体形式,都可以满足在虚拟化环境下的部署应用软件的需求。容器与虚机比在下面几个方面更有优势:
(1)容器的启动速度更快
容器运行的空间需求少,没有自己的操作系统,因此容器可以快速启动,容器的启动速度可以得到秒级;而虚拟是有自己的操作系统,在操作系统启动以后,再启动应用软件,因此虚机的启动速度慢,会达到好几分钟。
(2)容器比虚机资源利用率更高
一个虚拟机必须占用一个物理核或者一个HT,在很多情况下,一个虚机需要的资源更多,这样,在一台物理机上部署的虚机数目就受到限制,物理机上的空闲资源如果不能满足一个虚机的资源需求,就会使得计算资源不能被充分利用引起浪费。而容器对计算资源的需求低,可以充分利用物理机的资源,极大地提高了资源利用率。
(3)容器比虚机占用的资源更少
一般一个虚机是由一个物理核或者HT(硬件超线程,0.5个物理核)组成的,而容器占用的资源很少,一个HT就可以支持多个容器,每个容器的资源可以非常小,比如只需要0.2个物理核就可以部署容器应用了。由于容器的资源需求低,在一个物理机上可以部署很多个容器,每个容器都可以运行不同功能的代码,非常适合分布式处理的软件。
(4)容器的弹性能力更强
容器的启动速度快带来的另外一个好处就是弹性能力强,就是在处理资源不足的使用,可以快速从资源池中申请新的容器并快速启动起来,就可以支持更强的处理能力,满足突发的资源需求。
以上梳理了容器技术的定义、种类及其与虚拟技术的区别,希望对你有所帮助,如果你想了解更多相关内容,敬请关注三个皮匠报告的行业知识栏目。
推荐阅读:
服务器虚拟化是什么?优势有哪些?
什么是web服务器?web服务器有哪些?作用、原理介绍
什么是虚拟存储器?有哪些特征?