容器化解釋:它是什么,好處和應(yīng)用

      你聽(tīng)說(shuō)過(guò)容器化這個(gè)詞嗎?可能不是。在虛擬環(huán)境中使用容器并不新鮮,因?yàn)樗呀?jīng)使用了幾年。然而,技術(shù)改進(jìn)使得容器化再次流行起來(lái),這要?dú)w功于與虛擬機(jī)相比它的執(zhí)行輕巧。在本指南中,我們將告訴您容器化是什么以及它提供了哪些好處。

      容器化解釋:它是什么,好處和應(yīng)用-南華中天

      物理容器與軟件容器

      為了理解容器化,讓我們先考慮一下物理容器。由于集裝箱,現(xiàn)代航運(yùn)業(yè)可以有效地運(yùn)輸貨物。想象一下,用智能手機(jī)將打開的托盤與食品托盤一起運(yùn)輸是多么困難。我們沒(méi)有專門運(yùn)輸某種貨物的船只,而是將所有東西放在單獨(dú)的容器中,然后將它們?nèi)糠旁谕凰掖稀?/p>

      IT 世界中解釋的容器化的工作方式基本相同。您無(wú)需交付完整的操作系統(tǒng)和軟件,而是將代碼打包到可以在任何地方運(yùn)行的容器中。由于這些容器通常很小,您可以將大量容器打包到一臺(tái)計(jì)算機(jī)上。

      與虛擬機(jī)相比,容器是什么?

      有時(shí),容器會(huì)與虛擬機(jī)混淆,因?yàn)樗鼈円灶愃频姆绞焦ぷ鳎涸诓恍枰锢碛布那闆r下隔離應(yīng)用程序。然而,它的主要區(qū)別在于它的架構(gòu)。容器與操作系統(tǒng)隔離,使用它們進(jìn)行操作更容易。我們可以將它們理解為虛擬機(jī)的輕量級(jí)形式。

      容器作為虛擬機(jī)具有隔離性,即為數(shù)據(jù)處理預(yù)留空間,以root身份授權(quán),可以掛載文件系統(tǒng)等等。但是,與使用單獨(dú)的操作系統(tǒng)管理的虛擬機(jī)不同,容器與其他容器共享主機(jī)系統(tǒng)的內(nèi)核。

      容器化的工作原理

      容器架構(gòu)中的主要部分是 Docker。Docker 是一個(gè)基于 Linux 內(nèi)核的開源軟件,負(fù)責(zé)在操作系統(tǒng)中創(chuàng)建容器,如圖 1 所示。在 Master 中,我們提供 支持 docker 容器化的 KVM 虛擬化的虛擬托管服務(wù)器。

      通過(guò)訪問(wèn)單個(gè)操作系統(tǒng)內(nèi)核,Docker 可以管理多個(gè)分布式應(yīng)用程序,這些應(yīng)用程序運(yùn)行在自己的容器中。換句話說(shuō),集裝箱化是基于在單個(gè)虛擬貨運(yùn)中實(shí)現(xiàn)的軟件包。

      容器是從 Docker 鏡像創(chuàng)建的。雖然鏡像是只讀的,但 docker 會(huì)在鏡像文件系統(tǒng)中添加一個(gè)讀寫文件系統(tǒng)來(lái)創(chuàng)建容器。創(chuàng)建容器后,Docker 會(huì)啟動(dòng)一個(gè)網(wǎng)絡(luò)接口,將容器與本地主機(jī)通信。然后將 IP 地址添加到創(chuàng)建的容器并執(zhí)行指示的進(jìn)程以執(zhí)行分配給它的應(yīng)用程序。

      容器化解釋:它是什么,好處和應(yīng)用-南華中天

      在實(shí)現(xiàn)容器化時(shí),每個(gè)容器都具有執(zhí)行程序所需的所有部分:文件、庫(kù)和允許環(huán)境可執(zhí)行的所有變量。正如我們前面提到的,與虛擬機(jī)不同,容器不需要有不同的操作系統(tǒng)。此功能使它們更快更輕,因?yàn)樗鼈儚姆?wù)器或云中消耗的資源更少。

      容器化的好處

      與虛擬機(jī)相比,容器化通過(guò)減少資源數(shù)量和執(zhí)行時(shí)間來(lái)優(yōu)化虛擬化。此外,公司節(jié)省了資金,因?yàn)樗麄儾恍枰哂懈髯栽S可證的多個(gè)版本的操作系統(tǒng)。就像它發(fā)生在虛擬機(jī)上一樣。

      另一方面,容器允許多個(gè)應(yīng)用程序在一臺(tái)機(jī)器上運(yùn)行。為什么?因?yàn)椴僮飨到y(tǒng)的內(nèi)核是共享的。從業(yè)務(wù)角度來(lái)看,這種方法更具吸引力,因?yàn)樗子趧?chuàng)建、組裝和移動(dòng)應(yīng)用程序。容器化的其他一些好處如下:

      可移植性

      容器化可以在任何能夠執(zhí)行容器環(huán)境的臺(tái)式機(jī)或筆記本電腦上運(yùn)行。因?yàn)閼?yīng)用程序不需要主機(jī)操作系統(tǒng),所以它們的執(zhí)行速度更快。幾乎任何人都可以在筆記本電腦上打包應(yīng)用程序并立即在公共或私有云中進(jìn)行測(cè)試,而無(wú)需進(jìn)行修改。應(yīng)用程序環(huán)境和操作環(huán)境都保持清潔和最小化。

      可擴(kuò)展性和調(diào)制

      容器重量輕,不會(huì)超載。由于這種能力,容器可以通過(guò)根據(jù)需求高峰增加或減少服務(wù)的系統(tǒng)組來(lái)擴(kuò)展應(yīng)用程序。在容器中執(zhí)行可擴(kuò)展性的最佳工具之一是 Google 的 Kubernetes。Kubernetes 允許自動(dòng)控制容器的工作負(fù)載、它們的交互和實(shí)現(xiàn)。

      速度

      使容器比 VM 更快的原因在于,通過(guò)在單個(gè)內(nèi)核中執(zhí)行隔離的空間環(huán)境,占用更少的資源。容器可以在幾秒鐘內(nèi)運(yùn)行,而虛擬機(jī)需要更多時(shí)間來(lái)啟動(dòng)每個(gè)操作系統(tǒng)。

      Docker 中心鏡像

      Docker Hub 擁有數(shù)千個(gè)任何人都可以輕松使用的公共鏡像。圖像庫(kù)允許您根據(jù)應(yīng)用程序的特定需求找到容器所需的幾乎任何圖像。

      容器化解釋:它是什么,好處和應(yīng)用-南華中天

      隔離和監(jiān)管

      在容器化中,應(yīng)用程序不僅相互隔離,而且還與底層系統(tǒng)隔離。更容易控制容器內(nèi)的應(yīng)用程序和系統(tǒng)資源。還確保數(shù)據(jù)和代碼保持隔離。