看看这个问题及其答案,很明显有几点使容器服务与传统 VM 有很大不同:
他们可以通过共享主机的操作系统来节省性能和空间
他们使用 AuFS 文件系统进一步节省空间,这允许他们与主机共享硬盘驱动器
所有这一切使他们能够在一个完整的 VM 所需的时间的一小部分内启动。
我可能对 KVM 的工作方式和管理程序模型有一些误解,但容器不是很像 KVM 吗?它们有什么不同,它们中的任何一个的性能增益/损失是什么?
看看这个问题及其答案,很明显有几点使容器服务与传统 VM 有很大不同:
他们可以通过共享主机的操作系统来节省性能和空间
他们使用 AuFS 文件系统进一步节省空间,这允许他们与主机共享硬盘驱动器
所有这一切使他们能够在一个完整的 VM 所需的时间的一小部分内启动。
我可能对 KVM 的工作方式和管理程序模型有一些误解,但容器不是很像 KVM 吗?它们有什么不同,它们中的任何一个的性能增益/损失是什么?
我可能对 KVM 的工作方式和管理程序模型有一些误解,但容器不是很像 KVM 吗?它们有什么不同,它们中的任何一个的性能增益/损失是什么?
虚拟机就是这样——“虚拟”硬件,几乎可以引导任何兼容的操作系统。例如,您可以在 Linux 主机上的 VM 中运行 Windows。虚拟机提供各种模拟硬件,包括 CPU、网卡、存储接口等。
相比之下,容器只不过是主机上的进程集合。在容器内运行的进程与在容器外运行的进程没有什么不同——从主机你可以看到它们ps
,使用类似的工具管理它们kill
。因此,在容器中运行的进程正在使用你的主机内核——你可以比如说,在 Linux 主机上的容器中运行 Windows 二进制文件。
因为它们不执行任何类型的硬件虚拟化,容器的重量比虚拟机要轻得多。只要您能够克服它们的限制(即它们仅限于主机操作系统内核的事实),它们就会比在虚拟机中运行相同的服务产生更好的硬件利用率。