Docker與虛擬機(jī)對(duì)比
關(guān)于Docker的一個(gè)常見(jiàn)問(wèn)題是它與VM(虛擬機(jī))的區(qū)別。
在云基礎(chǔ)架構(gòu)方面,虛擬機(jī)已成為許多優(yōu)勢(shì)的首選標(biāo)準(zhǔn)。但是,如果您擁有更輕量,經(jīng)濟(jì)且可擴(kuò)展的虛擬機(jī)的替代方案,那該怎么辦呢?這正是Docker的意思。
Docker是一種基于容器的技術(shù),可以讓您開(kāi)發(fā)分布式應(yīng)用程序。在這篇博文中,我將解釋虛擬機(jī)和Docker容器之間的差異。
什么是虛擬機(jī)?
虛擬機(jī)是一個(gè)與計(jì)算機(jī)完全相同的系統(tǒng)。
簡(jiǎn)單來(lái)說(shuō),它可以運(yùn)行硬件上的許多單獨(dú)計(jì)算機(jī)上的內(nèi)容,即一臺(tái)計(jì)算機(jī)。每個(gè)虛擬機(jī)都需要其底層操作系統(tǒng),然后硬件被虛擬化。
什么是Docker?
Docker是一個(gè)使用容器來(lái)輕松創(chuàng)建,部署和運(yùn)行應(yīng)用程序的工具。它將應(yīng)用程序及其依賴項(xiàng)綁定在容器中。
Docker與VM
現(xiàn)在我將告訴你docker容器和虛擬機(jī)之間的重大區(qū)別。嗯,重要的區(qū)別是他們的操作系統(tǒng)支持,安全性,可移植性和性能。
讓我們逐一討論這些術(shù)語(yǔ)中的每一個(gè)。
操作系統(tǒng)支持
傳統(tǒng)與新一代
虛擬機(jī)和Docker容器的操作系統(tǒng)支持是非常不同的。從上圖中,您可以看到每個(gè)虛擬機(jī)的主客戶操作系統(tǒng)都位于主機(jī)操作系統(tǒng)之上,這使虛擬機(jī)變得繁重。另一方面,Docker容器共享主機(jī)操作系統(tǒng),這就是它們輕量級(jí)的原因。
在容器之間共享主機(jī)操作系統(tǒng)使它們非常輕,并幫助它們?cè)趲酌腌妰?nèi)啟動(dòng)。因此,與虛擬機(jī)相比,管理容器系統(tǒng)的開(kāi)銷非常低。
docker容器適用于您希望在單個(gè)操作系統(tǒng)內(nèi)核上運(yùn)行多個(gè)應(yīng)用程序的情況。但是,如果您的應(yīng)用程序或服務(wù)器需要在不同的操作系統(tǒng)風(fēng)格上運(yùn)行,則需要虛擬機(jī)。
安全
虛擬機(jī)不共享操作系統(tǒng),并且主機(jī)內(nèi)核中存在強(qiáng)大的隔離。因此,與Containers相比,它們更安全。容器具有很多安全風(fēng)險(xiǎn),并且容器具有共享主機(jī)內(nèi)核的漏洞。
此外,由于docker資源是共享的而非命名空間,因此攻擊者可以利用群集中的所有容器,即使他/她甚至可以訪問(wèn)一個(gè)容器。在虛擬機(jī)中,您無(wú)法直接訪問(wèn)資源,并且虛擬機(jī)管理程序可以限制VM中資源的使用。
可移植性
Docker容器易于攜帶,因?yàn)樗鼈儧](méi)有單獨(dú)的操作系統(tǒng)。容器可以移植到不同的操作系統(tǒng),它可以立即啟動(dòng)。另一方面,虛擬機(jī)具有單獨(dú)的OS,因此與容器相比,移植虛擬機(jī)很困難,并且由于其大小,還需要花費(fèi)大量時(shí)間來(lái)移植虛擬機(jī)。
對(duì)于必須在不同平臺(tái)上開(kāi)發(fā)和測(cè)試應(yīng)用程序的開(kāi)發(fā)目的,Docker容器是理想的選擇。
性能
比較虛擬機(jī)和Docker容器是不公平的,因?yàn)樗鼈兌加糜诓煌哪康?。但Docker的輕量級(jí)架構(gòu)其資源密集度較低的特性使其成為比虛擬機(jī)更好的選擇。因此,與虛擬機(jī)相比,其容器可以非??斓貑?dòng),并且資源使用根據(jù)其中的負(fù)載或流量而變化。
與虛擬機(jī)的情況不同,不需要永久地將資源分配給容器。與虛擬機(jī)相比,擴(kuò)展和復(fù)制容器也是一項(xiàng)簡(jiǎn)單的任務(wù),因?yàn)椴恍枰谄渲邪惭b操作系統(tǒng)。
結(jié)論
這是一個(gè)結(jié)束虛擬機(jī)和Docker容器差異的表。
虛擬機(jī) Docker容器
硬件級(jí)進(jìn)程隔離 OS級(jí)進(jìn)程隔離
每個(gè)VM都有一個(gè)單獨(dú)的OS 每個(gè)容器都可以共享OS
幾分鐘內(nèi)的靴子 幾秒鐘之內(nèi)的靴子
虛擬機(jī)數(shù)量很少 容器很輕(KB / MB)
現(xiàn)成的VM很難找到 預(yù)制的碼頭工人集裝箱很容易買到
虛擬機(jī)可以輕松遷移到新主機(jī) 容器被破壞并重新創(chuàng)建而不是移動(dòng)
創(chuàng)建VM需要相對(duì)較長(zhǎng)的時(shí)間 可以在幾秒鐘內(nèi)創(chuàng)建容器
更多的資源使用 資源使用量減少
