【问题标题】:How do Docker and other container services differ from KVMs?Docker 和其他容器服务与 KVM 有何不同?
【发布时间】:2015-07-09 12:47:12
【问题描述】:

看看this question and its answers,很明显有几点让容器服务与传统的VM有很大不同:

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

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

所有这些都使它们能够在启动完整 VM 所需的时间的一小部分内完成。

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

【问题讨论】:

标签: docker kvm linux-containers


【解决方案1】:

我可能对 KVM 的工作原理以及 管理程序模型,但容器不是很像 KVM 吗?在做什么 它们不同,两者的性能增益/损失是什么 他们?

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

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

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

【讨论】:

  • 我的印象是,KVM 的硬件虚拟化比“完整”的 VM 更有限 - 并且容器使用与此类似的沙盒形式。这有什么道理吗?
  • 也许我们有条款冲突?也就是说,“KVM”是由 Linux 内核 (this one) 实现的虚拟化——这就是我假设你要问的——这是完整的硬件虚拟化。如果您实际上指的是其他东西,那么这个答案实际上可能不相关。
  • 就是那个...我想我被最初向我解释 KVM 的人误导了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-07
相关资源
最近更新 更多