📜  虚拟机相对于便携式容器的优势

📅  最后修改于: 2021-04-17 01:32:19             🧑  作者: Mango

尽管现代容器由于其轻巧的特性而似乎是提供计算环境的首选解决方案,但在本文中,我们将探讨虚拟机相对于新时代便携式容器的优势。

1.安全性:

VM比容器更安全,因为应用程序(多个)在VM的内部运行,即Guest OS,并且通过Hypervisor与硬件进行通信。对于容器,它们具有运行应用程序所需的一切。但是,当它们必须与其他容器或运行这些容器的主机OS通信时,会带来安全风险。自从虚拟化首先问世以来,与容器相比,虚拟机在安全性和数据加密方面已经完成了大量工作。虚拟机的任何妥协都不会影响或让攻击者进入另一台虚拟机,因为安全方面是由虚拟机管理程序控制的,而在容器中则不是这种情况,因为它们没有强大的安全边界。

管理程序

管理程序

2.运行较旧的应用程序:

当我们必须运行较旧的应用程序或在较旧版本的操作系统之上运行的应用程序时,虚拟机是首选。由于我们可能没有足够的资源来使应用程序现代化以在容器内运行,因此我们将不得不求助于VM。在这种情况下,我们可以将旧操作系统作为VM运行,并在其之上运行应用程序。

3.操作系统资源密集型的应用程序:

当我们需要托管或运行需要大量资源并且需要OS功能和资源的应用程序时,可以使用VM。同样,在需要运行各种OS的环境中,则首选VM。对于容器,它们使用主机的内核,并且无法像虚拟机那样被隔离,因为它们运行自己的内核。

4.使用主机操作系统和兼容的内核(可移植性):

我们可以在主机/服务器之上运行多个VM,这些VM运行不同的来宾OS(具有自己的内核)。而对于容器,由于它们使用主机操作系统中的内核,因此它们仅限于操作系统,因此,设计为在特定主机操作系统上运行的容器将无法迁移另一台运行不同内核的服务器,并且会出现兼容性问题在迁移容器时。

5.图形用户界面(视频输出):

与虚拟机相比,容器在视频输出/支持方面无效,因为它们主要用于控制台应用程序。通过使用主机上的虚拟显示,具有图形界面或需要丰富GUI的运行工具或软件在VM上更容易。当我们需要运行基于GUI的应用程序时,VM是首选的解决方案。

6.永久存储:

VM具有用于永久存储应用程序数据的虚拟磁盘。但是,在容器中并非如此,容器使用了我们所谓的临时存储(默认情况下,容器是无状态的)。随着对有状态应用程序的需求不断增长和需求,容器面临着添加存储解决方案的挑战。在持久性存储方面,VM的得分要高于容器,因为我们需要在容器中实现复杂的存储解决方案。

下图区分了虚拟机和容器:

VM与容器