0

看看这个问题及其答案,很明显有几点使容器服务与传统 VM 有很大不同:

  • 他们可以通过共享主机的操作系统来节省性能和空间

  • 他们使用 AuFS 文件系统进一步节省空间,这允许他们与主机共享硬盘驱动器

所有这一切使他们能够在一个完整的 VM 所需的时间的一小部分内启动。

我可能对 KVM 的工作方式和管理程序模型有一些误解,但容器不是很像 KVM 吗?它们有什么不同,它们中的任何一个的性能增益/损失是什么?

4

1 回答 1

1

我可能对 KVM 的工作方式和管理程序模型有一些误解,但容器不是很像 KVM 吗?它们有什么不同,它们中的任何一个的性能增益/损失是什么?

虚拟机就是这样——“虚拟”硬件,几乎可以引导任何兼容的操作系统。例如,您可以在 Linux 主机上的 VM 中运行 Windows。虚拟机提供各种模拟硬件,包括 CPU、网卡、存储接口等。

相比之下,容器只不过是主机上的进程集合。在容器内运行的进程与在容器外运行的进程没有什么不同——从主机你可以看到它们ps,使用类似的工具管理它们kill。因此,在容器中运行的进程正在使用你的主机内核——你可以比如说,在 Linux 主机上的容器中运行 Windows 二进制文件。

因为它们不执行任何类型的硬件虚拟化,容器的重量比虚拟机要轻得多。只要您能够克服它们的限制(即它们仅限于主机操作系统内核的事实),它们就会比在虚拟机中运行相同的服务产生更好的硬件利用率。

于 2015-07-09T13:08:19.630 回答