在云计算环境下,虚机与容器都是虚拟化资源的具体形式,都可以满足在虚拟化环境下的部署应用软件的需求。容器与虚机比在下面几个方面更有优势:
容器运行的空间需求少,没有自己的操作系统,因此容器可以快速启动,容器的启动速度可以得到秒级;而虚拟是有自己的操作系统,在操作系统启动以后,再启动应用软件,因此虚机的启动速度慢,会达到好几分钟。
一个虚拟机必须占用一个物理核或者一个HT,在很多情况下,一个虚机需要的资源更多,这样,在一台物理机上部署的虚机数目就受到限制,物理机上的空闲资源如果不能满足一个虚机的资源需求,就会使得计算资源不能被充分利用引起浪费。而容器对计算资源的需求低,可以充分利用物理机的资源,极大地提高了资源利用率。
一般一个虚机是由一个物理核或者HT(硬件超线程,0.5个物理核)组成的,而容器占用的资源很少,一个HT就可以支持多个容器,每个容器的资源可以非常小,比如只需要0.2个物理核就可以部署容器应用了。由于容器的资源需求低,在一个物理机上可以部署很多个容器,每个容器都可以运行不同功能的代码,非常适合分布式处理的软件。
容器的启动速度快带来的另外一个好处就是弹性能力强,就是在处理资源不足的使用,可以快速从资源池中申请新的容器并快速启动起来,就可以支持更强的处理能力,满足突发的资源需求。