是什么让Docker容器如此受欢迎?在某些情况下甚至比虚拟机更有魅力?
答案就是密度。
为什么这么说?它怎会如此重要?
在计算的背景下,密度指的是单个物理服务器一次可以运行的对象数量。如果服务器可以通过充分利用其资源一次容纳大量应用程序,它则可以支持密集的环境部署。相反,如果服务器只运行少数应用程序,它的总容量未能充分利用,那么它是一个稀疏的环境。
Docker和密度
Docker与虚拟机之间的关键差异原来是它
支持密集软件部署的能力是Docker在许多情况下比部署应用程序的虚拟机更有利的一个关键原因。
关于这点,你必须首先意识到,从根本上讲虚拟机不善于密集,这里有2个主要原因:
虚拟机有更多的开销。他们必须运行一个完整的客户操作系统,即使他们只托管单个应用程序。因此,更多的物理服务器资源必须专用于支持与客户操作系统相关的环境开销,从而减少可用于专用于应用程序的资源。
配置虚拟机时,通常必须为其分配一定量的存储,内存和计算资源。这些资源将永久连接到虚拟机,直到您更改配置。即使虚拟机不使用资源,也不支持主机上的其他虚拟机。
相比之下,Docker容器是创建密集环境的理想选择,在这种环境中,主机服务器的资源被充分利用,但不会被过度使用。这是因为Docker容器不需要通过在容器内创建客户机操作系统来复制主机操作系统的功能。
此外,Docker不会强制您为容器分配给定数量的资源(虽然您可以为单个容器设置资源配额)。这意味着Docker容器能够更高效和动态地使用来自主机的资源。当放置在一个容器或服务上的需求减少时,它所消耗的资源将被释放以供其他服务使用。
它可以帮助Docker容器轻松跨服务器集群进行分布。有助于确保资源被有效地使用以及每个服务器密度的最大化,同时使单个服务器变得过载的风险最小化。
结论
到目前为止,密度已经不是Docker会话的重要组成部分(虽然Canonical喜欢使用该术语来推广其系统容器解决方案,LXD是专为托管完整的操作系统而不是个别应用程序而设计的)。但是这个概念有助于思考为什么Docker已经变得如此受欢迎 - 以及Docker和虚拟机之间的关键区别。
本文转自d1net(转载)