華文網

密度 竟然是Docker與虛擬機器之間的關鍵差異

是什麼讓Docker容器如此受歡迎?在某些情況下甚至比虛擬機器更有魅力?

答案就是密度。

為什麼這麼說?它怎會如此重要?

在計算的背景下,密度指的是單個物理伺服器一次可以運行的物件數量。

如果伺服器可以通過充分利用其資源一次容納大量應用程式,它則可以支援密集的環境部署。相反,如果伺服器只運行少數應用程式,它的總容量未能充分利用,那麼它是一個稀疏的環境。

Docker和密度

支援密集軟體部署的能力是Docker在許多情況下比部署應用程式的虛擬機器更有利的一個關鍵原因。

關於這點,你必須首先意識到,從根本上講虛擬機器不善於密集,這裡有2個主要原因:

虛擬機器有更多的開銷。他們必須運行一個完整的客戶作業系統,即使他們只託管單個應用程式。因此,更多的物理伺服器資源必須專用于支援與客戶作業系統相關的環境開銷,從而減少可用于專用于應用程式的資源。

配置虛擬機器時,通常必須為其分配一定量的存儲,記憶體和計算資源。這些資源將永久連接到虛擬機器,直到您更改配置。即使虛擬機器不使用資源,也不支援主機上的其他虛擬機器。

相比之下,Docker容器是創建密集環境的理想選擇,在這種環境中,主機伺服器的資源被充分利用,但不會被過度使用。這是因為Docker容器不需要通過在容器內創建客戶機作業系統來複製主機作業系統的功能。

此外,Docker不會強制您為容器分配給定數量的資源(雖然您可以為單個容器設置資源配額)。這意味著Docker容器能夠更高效和動態地使用來自主機的資源。當放置在一個容器或服務上的需求減少時,它所消耗的資源將被釋放以供其他服務使用。

它可以幫助Docker容器輕鬆跨伺服器集群進行分佈。有助於確保資源被有效地使用以及每個伺服器密度的最大化,同時使單個伺服器變得超載的風險最小化。

結論

到目前為止,密度已經不是Docker會話的重要組成部分(雖然Canonical喜歡使用該術語來推廣其系統容器解決方案,LXD是專為託管完整的作業系統而不是個別應用程式而設計的)。但是這個概念有助於思考為什麼Docker已經變得如此受歡迎 - 以及Docker和虛擬機器之間的關鍵區別。