先給大家說下docker概念
Docker是一個(gè)開源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個(gè)輕量級(jí)的、可移植的、自給自足的容器。開發(fā)者在筆記本上編譯測(cè)試通過的容器可以批量地在生產(chǎn)環(huán)境中部署,包括VMs(虛擬機(jī))、bare metal、OpenStack 集群和其他的基礎(chǔ)應(yīng)用平臺(tái)。
Docker優(yōu)勢(shì):
更快速的交付和部署(一次創(chuàng)建和配置,可以在任意地方正常運(yùn)行)
更高效的虛擬化(不需要hypervisor支持,內(nèi)核級(jí)虛擬化)
更輕松的遷移和擴(kuò)展(在任意平臺(tái)移植)
更簡(jiǎn)單的管理()
關(guān)于docker理解
一、首先是關(guān)于虛擬化
虛擬化我們可以簡(jiǎn)單的理解為一種資源管理方式。有如下幾種虛擬化的方式:
1.完全虛擬化:對(duì)底層硬件實(shí)現(xiàn)完全的虛擬。例如:Vmware Workstation
2.部分虛擬化:只對(duì)部分硬件資源的虛擬。
3.操作系統(tǒng)級(jí)虛擬化:內(nèi)核通過創(chuàng)建多個(gè)虛擬操作系統(tǒng)實(shí)例來隔離各個(gè)進(jìn)程。
docker就是屬于操作系統(tǒng)級(jí)的虛擬化。
二、其次是對(duì)docker的理解
docker的思想來源于集裝箱,試問集裝箱解決了什么問題?
試想,在一艘大船上,可以把貨物規(guī)整的擺放起來。并且各種各樣的貨物被集裝箱標(biāo)準(zhǔn)化了,集裝箱和集裝箱之間不會(huì)相互影響。那么我就不需要專門運(yùn)送水果的船和專門運(yùn)送化學(xué)物品的船了。只要這些貨物在集裝箱里裝的好好的,那我就可以用一艘大船把它們都運(yùn)走。docker就是類似的理念。現(xiàn)在都流行云計(jì)算了,云計(jì)算就好比大貨輪,而docker就是集裝箱。
Docker的優(yōu)點(diǎn):
1.更快速地交付和部署
不同的應(yīng)用程序可能會(huì)有不同的應(yīng)用環(huán)境。比如,.net開發(fā)的網(wǎng)站和.php開發(fā)的網(wǎng)站所依賴的軟件就不一樣,如果把他們所依賴的軟件都安裝在一個(gè)服務(wù)器上,就要調(diào)試很久,不僅麻煩,還會(huì)造成一些諸如IIS和Apache訪問端口沖突這樣的問題。這個(gè)時(shí)候你就要隔離.net開發(fā)的網(wǎng)站和.php開發(fā)的網(wǎng)站。常規(guī)來講,我們可以在服務(wù)器上創(chuàng)建不同的虛擬機(jī)并在不同的虛擬機(jī)上部署不同的應(yīng)用,但是虛擬機(jī)開銷比較大。此時(shí)docker就可以實(shí)現(xiàn)虛擬機(jī)隔離不同應(yīng)用的這種功能,并且開銷比虛擬機(jī)小,小就意味著省錢。
2.更輕松的遷移和擴(kuò)展
我們?cè)賮砼e個(gè)簡(jiǎn)單的例子。比如你開發(fā)的時(shí)候用的是Ubuntu,但是運(yùn)維管理的都是CentOS,運(yùn)維在把你開發(fā)的軟件從開發(fā)環(huán)境轉(zhuǎn)移到生產(chǎn)環(huán)境的時(shí)候就會(huì)遇到一些Ubuntu轉(zhuǎn)CentOS的問題,比如:存在一個(gè)特殊版本的數(shù)據(jù)庫(kù),只支持Ubuntu而不支持CentOS,那么在轉(zhuǎn)移的過程中就得想辦法解決這樣的問題。但這時(shí)候如果有docker,你就可以把開發(fā)環(huán)境直接封裝轉(zhuǎn)移給運(yùn)維,運(yùn)維直接部署你給他的docker就可以了。而且部署速度快。
3.更高效的虛擬化和更簡(jiǎn)單的管理
在服務(wù)器負(fù)載方面,如果你單獨(dú)開一個(gè)虛擬機(jī),那么虛擬機(jī)會(huì)占用空閑內(nèi)存的,docker部署的話,這些內(nèi)存就會(huì)被有效的利用起來。而且Docker容器的運(yùn)行不需要額外的hypervisor支持,它是內(nèi)核級(jí)的虛擬化,因此可以實(shí)現(xiàn)更高的性能和效率。
Docker的三個(gè)基本概念:
鏡像、容器、倉(cāng)庫(kù)
三、Docker的三個(gè)基本概念的詳解
1.鏡像
Docker在英語(yǔ)當(dāng)中的本意是“物件/碼頭工人”,docker容器的意思為物件的容器。關(guān)于鏡像,舉個(gè)簡(jiǎn)單的例子,我們經(jīng)常安裝的windows操作系統(tǒng),先要從網(wǎng)上下載ISO鏡像文件,經(jīng)解壓后才能安裝和使用。Docker也是一樣,我們要向創(chuàng)建docker容器,就需要?jiǎng)?chuàng)建容器的類似于ISO鏡像文件的docker鏡像文件。
2.容器
關(guān)于容器,大家肯定并不陌生。沒錯(cuò),docker容器就是來管理不同架構(gòu)的應(yīng)用程序的。從本質(zhì)上來說,容器是從鏡像創(chuàng)建的運(yùn)行實(shí)例。容器與容器之間是相互隔離的,每個(gè)容器都是保證安全的平臺(tái)。
新聞熱點(diǎn)
疑難解答
圖片精選