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


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

DockOne - DockOne官方账号

赞同来自: 田浩浩 lojunren


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

DockOne - DockOne官方账号

赞同来自: 田浩浩 lojunren [已注销]


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

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

要回复问题请先登录注册