看看this question and its answers,很明显有几点使容器服务与传统虚拟机完全不同:
他们可以通过共享主机的操作系统来节省性能和空间
他们使用AuFS文件系统进一步节省空间,允许他们与主机共享硬盘
所有这些都允许他们在完整虚拟机所需时间的一小部分内启动。
我可能对KVM如何工作以及虚拟机管理程序模型有一些误解,但是不像KVM那样容器?它们有什么不同,它们中的任何一个的性能增益/损失是什么?
答案 0 :(得分:1)
我可能对KVM如何工作以及如何工作有一些误解 管理程序模型,但不像KVM那样容器?在做什么 他们有所不同,两者的绩效收益/损失是什么? 它们?
虚拟机只是 - "虚拟"可以启动任何兼容操作系统的硬件。例如,您可以在Linux主机上的VM中运行Windows。 VM提供各种模拟硬件,包括CPU,网卡,存储接口等。
相比之下,容器只不过是主机上的一组进程。在容器内运行的进程与在容器外部运行的进程没有什么不同 - 从您可以使用ps
看到它们的主机,使用kill
等工具管理它们。因此,运行的进程在容器正在使用您的主机内核 - 您不能在Linux主机上的容器内运行Windows二进制文件。
由于他们没有执行任何类型的硬件虚拟化,因此容器的重量远远小于虚拟机。只要您能够处理它们的限制(即,它们仅限于主机操作系统内核这一事实),它们将比在虚拟机中运行相同的服务更好地利用硬件。