自從Linux上的容器變得流行以來(lái),了解Linux容器和虛擬機(jī)之間的區(qū)別變得更加棘手。在本文小編將向您提供詳細(xì)信息,以了解Linux容器和虛擬機(jī)之間的差異。
自從Linux上的容器變得流行以來(lái),了解Linux容器和
虛擬機(jī)之間的區(qū)別變得更加棘手。在本文小編將向您提供詳細(xì)信息,以了解Linux容器和虛擬機(jī)之間的差異。
Linux容器vs虛擬機(jī) - 應(yīng)用程序與操作系統(tǒng)
首先要了解的有關(guān)容器和虛擬機(jī)的一個(gè)事情是,一個(gè)運(yùn)用于應(yīng)用程序,另一個(gè)是為操作系統(tǒng)設(shè)計(jì)的。這就是為什么您經(jīng)常會(huì)看到一些企業(yè)應(yīng)用程序運(yùn)行在容器上而不是自己的虛擬機(jī)上。在虛擬機(jī)上使用容器有一些優(yōu)點(diǎn)。
容器最大的優(yōu)點(diǎn)之一是可以預(yù)留比虛擬機(jī)少的資源。請(qǐng)記住,容器本質(zhì)上是單個(gè)應(yīng)用程序,而虛擬機(jī)需要更多資源來(lái)運(yùn)行整個(gè)操作系統(tǒng)。
如果您需要運(yùn)行MySQL,NGINX或其他服務(wù),使用容器是非常有必要。但是,如果您需要在自己的服務(wù)器上運(yùn)行完整的LAMP堆棧,則運(yùn)行虛擬機(jī)更好。虛擬機(jī)有著更好的靈活性,可以供您選擇您的操作系統(tǒng),并在您認(rèn)為合適的情況下進(jìn)行升級(jí)。相比之下,運(yùn)行已配置應(yīng)用程序容器在主機(jī)的操作系統(tǒng)升級(jí)方面是隔離的。
Linux容器vs虛擬機(jī) - 用例場(chǎng)景
我最喜歡使用容器的原因之一就是使用Linux庫(kù)版本。例如,假設(shè)您需要Python的特定版本來(lái)開(kāi)發(fā)應(yīng)用程序。然后,當(dāng)你在運(yùn)行應(yīng)用程序的盒子上更新時(shí),突然發(fā)現(xiàn)Python版本發(fā)生了變化,導(dǎo)致應(yīng)用程序無(wú)法正常工作。
使用容器的另一個(gè)好處是你可以把一個(gè)應(yīng)用程序放到一個(gè)容器中,然后在任何支持你正在運(yùn)行的容器類型的操作系統(tǒng)上運(yùn)行它。當(dāng)你想要一個(gè)運(yùn)行在不同Linux發(fā)行版應(yīng)用程序時(shí)。通過(guò)使用容器,可以在各種不同的發(fā)行版上運(yùn)行類似的應(yīng)用程序環(huán)境。容器提供了可移植性。
容器對(duì)于快速的跨發(fā)行版部署是更可行的,而虛擬機(jī)對(duì)于像運(yùn)行LAMP堆棧這樣的單一應(yīng)用程序使用情況是更好的。
Linux容器vs虛擬機(jī) - 安全性
與容器相比,虛擬機(jī)提供了更多的安全性。這并不是說(shuō)容器不能被保護(hù),而是說(shuō),默認(rèn)的虛擬機(jī)提供了更大的隔離。請(qǐng)記住,容器可以共享系統(tǒng)資源而虛擬機(jī)不行。
在運(yùn)行容器時(shí),可以采取一些措施來(lái)降低風(fēng)險(xiǎn),包括避免超級(jí)用戶權(quán)限,確保從可信來(lái)源獲取容器,并且保持最新?tīng)顟B(tài)。有些容器是數(shù)字簽名的,這有助于確定您可以從可信來(lái)源獲取容器。
最后,你需要保持容器的單一功能職責(zé)。一旦你開(kāi)始在一個(gè)容器下結(jié)合軟件職責(zé),你會(huì)發(fā)現(xiàn)還是使用虛擬機(jī)最好。重申一下,容器是用于單一用途的應(yīng)用程序,虛擬機(jī)用于多用途的應(yīng)用程序。堅(jiān)持這種做法,你將在安全性和整體功能方面處于更好的狀況。
Linux容器vs虛擬機(jī) - 選擇合適的工具
無(wú)論虛擬機(jī)或容器類型如何,選擇適合您需求的關(guān)鍵都在于研究每個(gè)選項(xiàng)的能力。在容器領(lǐng)域,Docker提供了強(qiáng)大的企業(yè)解決方案。這就吸引了那些關(guān)注Docker容器的公司,因?yàn)楣局廊绻霈F(xiàn)任何問(wèn)題,他們可以得到他們所需要的支持。Docker是企業(yè)用戶友好的選擇,特別是在Docker Swarms中。而將Docker Swarms 與 Kubernetes 相比,Kubernetes在高級(jí)環(huán)境中的設(shè)置要復(fù)雜得多。
回到虛擬機(jī)方面,我一直發(fā)現(xiàn)Virtualbox可以提供更好的面向桌面的虛擬機(jī)環(huán)境。而VMware在服務(wù)器方面做了各種各樣的產(chǎn)品,VMware擁有從存儲(chǔ)到
云服務(wù)器解決方案的各種虛擬機(jī)解決方案,還有其他選擇(各種管理程序等)。但我認(rèn)為VirtualBox和VMware很好地代表了桌面到
服務(wù)器虛擬化的兩個(gè)領(lǐng)域。
Linux容器vs虛擬機(jī) - 贏家是?
在決定容器還是虛擬機(jī)之前,請(qǐng)考慮以下事項(xiàng)。如果你選擇容器,但你完全可以在虛擬機(jī)上運(yùn)行容器。了解這一點(diǎn)很重要,因?yàn)檫@里沒(méi)有明顯的贏家或輸家。事實(shí)上,這兩種技術(shù)的需求完全不同。
容器將引起媒體的持續(xù)關(guān)注,因?yàn)樗鼈冏層脩粲酶俚挠布咝У剡\(yùn)行。在另一方面,虛擬機(jī)仍然是服務(wù)器和云
空間的主要內(nèi)容。
小編認(rèn)為值得一看的是Kubernetes和Docker Swar之間的事情。我認(rèn)為看看這兩種容器管理技術(shù)是如何發(fā)揮作用的,以及哪種技術(shù)會(huì)成為標(biāo)準(zhǔn)。。