虚拟机与码头工人有什么区别

介绍

本篇内容主要讲解“虚拟机与码头工人有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“虚拟机与码头工人有什么区别”吧!

译者按:各种虚拟机技术开启了云计算时代;而码头工人,作为下一代虚拟化技术,正在改变我们开发,测试,部署应用的方式。那虚拟机与码头工人究竟有何不同呢?

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

首先,大家需要明确一点,码头工人容器不是虚拟机。

2014年,当我* * *次接触码头工人的时候,我把它比做一种轻量级的虚拟机。这样做无可厚非,因为码头工人最初的成功秘诀,正是它比虚拟机更节省内存,启动更快.Docker不停地给大家宣传,“虚拟机需要数分钟启动,而码头工人容器只需要50毫秒”。

然而,码头工人容器并非虚拟机,我们不妨来比较一下它们。

<强>理解虚拟机

使用虚拟机运行多个相互隔离的应用时,如下图:

虚拟机与码头工人有什么区别

<强>从下到上理解上图:

<李>

基础设施(基础设施),它可以是你的个人电脑,数据中心的服务器,或者是云主机。

<李>

主操作系统(主机操作系统)。你的个人电脑之上,运行的可能是MacOS, Windows或者某个Linux,发行版。

<李>

虚拟机管理系统(Hypervisor)。利用虚拟机监控程序,可以在主操作系统之上运行多个不同的从操作系统,。类型1的程序有支持MacOS的HyperKit,支持Windows的hyper - v以及支持Linux的KVM,。类型2的虚拟机监控程序有VirtualBox和VMWare。

<李>

从操作系统(客户操作系统)。假设你需要运行3个相互隔离的应用,则需要使用程序启动3个从操作系统,,也就是3个虚拟机。这些虚拟机都非常大,也许有700 mb,这就意味着它们将占用2.1 gb的磁盘空间。更糟糕的是,它们还会消耗很多CPU和内存。

<李>

各种依赖。每一个从操作系统都需要安装许多依赖。如果你的的应用需要连接PostgreSQL的话,则需要安装libpq-dev,,如果你使用Ruby的话,应该需要安装宝石,如果使用其他编程语言,比如Python或者节点。js,都会需要安装对应的依赖库。

<李>

应用。安装依赖之后,就可以在各个从操作系统分别运行应用了,这样各个应用就是相互隔离的。

<强>理解码头工人容器

使用码头工人容器运行多个相互隔离的应用时,如下图:

虚拟机与码头工人有什么区别

不难发现,相比于虚拟机,码头工人要简洁很多。因为我们不需要运行一个臃肿的从操作系统了。

<强>从下到上理解上图:

<李>

基础设施(基础设施).

<李>

主操作系统(主机操作系统),。所有主流的Linux发行版都可以运行码头工人。对于MacOS和窗户,也有一些办法”运行“码头工人。

<李>

码头工人守护进程(码头工人守护进程),.Docker守护进程取代了Hypervisor,它是运行在操作系统之上的后台进程,负责管理码头工人容器。

<李>

各种依赖。对于码头工人,应用的所有依赖都打包在码头工人镜像中,码头工人容器是基于码头工人镜像创建的。

<李>

应用。应用的源代码与它的依赖都打包在码头工人镜像中,不同的应用需要不同的码头工人镜像。不同的应用运行在不同的码头工人容器,中,它们是相互隔离的。

<强>对比虚拟机与码头工人

码头工人守护进程可以直接与主操作系统进行通信,为各个码头工人容器分配资源,它还可以将容器与主操作系统隔离,并将各个容器互相隔离,虚拟机启动需要数分钟,而码头工人容器可以在数毫秒内启动。由于没有臃肿的从操作系统,码头工人可以节省大量的磁盘空间以及其他系统资源。

说了这么多码头工人的优势,大家也没有必要完全否定虚拟机技术,因为两者有不同的使用场景。虚拟机,更擅长于彻底隔离整个运行环境,例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而码头工人通常用于隔离不同的应用,例如前端,后端以及数据库,。

到此,相信大家对“虚拟机与码头工人有什么区别”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

虚拟机与码头工人有什么区别