Container技术和服务器虚拟化是一样的技术吗?


Container技术和服务器虚拟化是一样的技术吗?一般常见的虚拟机和Container有何不同?为何Container是轻量级虚拟化技术?
已邀请:

DockOne - DockOne官方账号

赞同来自: 田浩浩 lojunren


Container技术和服务器虚拟化不是一样的技术,但是两者虽然都属于虚拟化的技术,目标都是为了将一套应用程序所需的执行环境打包起来,建立一个孤立环境,方便在不同的硬件中移动,但两者的运作思维截然不同。简单来说,常见的传统虚拟化技术如 vSphere 或 Hyper-V 是以操作系统为中心,而 Container 技术则是一种以应用程序为中心的虚拟化技术。
  
传统虚拟化技术从操作系统层下手,目标是建立一个可以用来执行整套操作系统的沙盒独立执行环境,习惯以虚拟机(Virtual Machine)来称呼。而 Container 技术则是直接将一个应用程序所需的相关程序代码、函式库、环境配置文件都打包起来建立沙盒执行环境,为了和传统虚拟化技术产生的虚拟机区分,Container 技术产生的环境就称为 Container。

DockOne - DockOne官方账号

赞同来自: 田浩浩 lojunren wangzi19870227


虚拟机和Container最明显的差别是虚拟机需要安装操作系统(安装 Guest OS)才能执行应用程序,而 Container 内不需要安装操作系统就能执行应用程序。Container 技术不是在 OS 外来建立虚拟环境,而是在 OS 内的核心系统层来打造虚拟执行环境,透过共享 Host OS 的作法,取代一个一个 Guest OS 的功用。Container 也因此被称为是 OS 层的虚拟化技术。

因为 Container 技术采取共享 Host OS 的作法,而不需在每一个 Container 内执行 Guest OS,因此建立 Container 不需要等待操作系统开机时间,不用 1 分钟或几秒钟就可以启用,远比需要数分钟甚至数十分钟才能开启的传统虚拟机来的快。

要回复问题请先登录注册