如果对虚拟化技术进行粗略地划分,可以分为常见的传统虚拟化技术和非传统类型的Container模式。
区别:
两者虽然都属于虚拟化的技术,目标都是为了将一套应用程序所需的执行环境打包起来,建立一个孤立环境,方便在不同的硬件中移动,但两者的运作思维截然不同。简单来说,常见的传统虚拟化技术如vSphere或Hyper-V是以操作系统为中心,而Container技术则是一种以应用程序为中心的虚拟化技术。
传统虚拟化技术从操作系统层下手,目标是建立一个可以用来执行整套操作系统的沙盒独立执行环境,习惯以虚拟机(Virtual Machine)来称呼。而Container技术则是直接将一个应用程序所需的相关程序代码、函式库、环境配置文件都打包起来建立沙盒执行环境,为了和传统虚拟化技术产生的虚拟机区分,Container技术产生的环境就称为Container。
图片小例子:
左边展示的非传统虚拟化技术Docker,右侧为传统虚拟化技术,从图片对比可看出每个container是不需要自己的OS的,但是右侧的VM是需要Guest OS来帮助运转的。简单地说,非传统的虚拟化技术Docker会更加灵活、简单、启动速度也会变快很多等。
图片来源于网络
内容参考:https://zhuanlan.51cto.com/art/201703/536043.htm