docker中容器和鏡像的關(guān)系是什么?

最近學(xué)習(xí)了docker,大多人感覺(jué)容器和鏡像學(xué)的有點(diǎn)模糊。
特別是鏡像和容器,感覺(jué)完全分不開(kāi),所以在此學(xué)習(xí),然后總結(jié)了一下,便于后面的學(xué)習(xí)。
這是我總結(jié)的鏡像總體層次架構(gòu):
VM/宿主機(jī)——>操作系統(tǒng)(如:centos)——>鏡像img(包含完整的系統(tǒng)如linux(ubuntu)、mysql、apache、nginx等。鏡像是由一層層的系統(tǒng)文件組成。)安裝——>創(chuàng)建容器——>創(chuàng)建應(yīng)用(APP)。
一個(gè)完整的docker由以下幾部分組成:
DockerClient客戶端
Docker Daemon守護(hù)進(jìn)程
Docker Image鏡像
DockerContainer容器
解決什么問(wèn)題:容器——>鏡像——>tar文件
到了測(cè)試環(huán)境恢復(fù)的時(shí)候:tar——>鏡像——>容器
鏡像和容器的區(qū)別:鏡像可以理解為java類,容器可以理解為java中的對(duì)象。即,鏡像:Java類;容器:java對(duì)象。
通過(guò)類可以創(chuàng)建很多對(duì)象,也就是說(shuō):鏡像可以創(chuàng)建很多個(gè)容器。
另外:
docker的整個(gè)生命周期有三部分組成:鏡像(image)+容器(container)+倉(cāng)庫(kù)(repository)。
docker 容器=鏡像+可讀層
容器是由鏡像實(shí)例化而來(lái)。
簡(jiǎn)單來(lái)說(shuō),鏡像是文件,容器是進(jìn)程。
容器是基于鏡像創(chuàng)建的,即容器中的進(jìn)程依賴于鏡像中的文件。
docker 的鏡像概念類似虛擬機(jī)的鏡像。是一個(gè)只讀的模板,一個(gè)獨(dú)立的文件系統(tǒng),包括運(yùn)行容器所需的數(shù)據(jù),可以用來(lái)創(chuàng)建新的容器。
docker利用容器來(lái)運(yùn)行應(yīng)用:docker容器是由docker鏡像創(chuàng)建的運(yùn)行實(shí)例。
docker容器類似虛擬機(jī),可以執(zhí)行包含啟動(dòng),停止,刪除等。每個(gè)容器間是相互隔離的。容器中會(huì)運(yùn)行特定的運(yùn)用,包含特定應(yīng)用的代碼及所需的依賴文件。可以把容器看作一個(gè)簡(jiǎn)易版的linux環(huán)境(包含root用戶權(quán)限,進(jìn)程空間,用戶空間和網(wǎng)絡(luò)空間等)和運(yùn)行在其中的應(yīng)用程序。

在Docker的生命周期中,最核心的兩個(gè)部分,一個(gè)是鏡像 Images,一個(gè)是容器 Containers。
鏡像運(yùn)行起來(lái)就是容器。
容器服務(wù)運(yùn)行的過(guò)程中,基于原始鏡像做了改變,比如安裝了程序,添加了文件,也可以提交回去 (commit)成為鏡像。
例如:一個(gè)鏡像可以包含一個(gè)完整的ubuntu操作系統(tǒng)環(huán)境,里面僅安裝了mysql或用戶需要的其他應(yīng)用程序。
docker鏡像實(shí)際上是由一層一層的系統(tǒng)文件組成,這種層級(jí)的文件系統(tǒng)被稱為UnionFS( Union file system 統(tǒng)一文件系統(tǒng)),鏡像可以基于dockerfile構(gòu)建,dockerfile是一個(gè)描述文件,里面包含了若干條密令,每條命令都會(huì)對(duì)基礎(chǔ)文件系統(tǒng)創(chuàng)建新的層次結(jié)構(gòu)。
docker提供了一個(gè)很簡(jiǎn)單的機(jī)制來(lái)創(chuàng)建鏡像或更新現(xiàn)有的鏡像。用戶甚至可以從其他人那里下載一個(gè)已經(jīng)做好的鏡像直接使用。(鏡像是只讀的,可以理解為靜態(tài)文件)
相對(duì)于鏡像來(lái)說(shuō)容器是動(dòng)態(tài)的,容器在啟動(dòng)的時(shí)候創(chuàng)建了一層可寫(xiě)層次作為最上層。
( docker create <image -id > :為指定的鏡像添加一個(gè)可讀寫(xiě)層,構(gòu)成一個(gè)新的容器;)
docker倉(cāng)庫(kù):如果使用了git和github就很容易理解docker的倉(cāng)庫(kù)概念。docker倉(cāng)庫(kù)概念和git類似。
docker倉(cāng)庫(kù)是用來(lái)包含鏡像的位置,docker提供了一個(gè)注冊(cè)服務(wù)器(register)來(lái)保存多個(gè)倉(cāng)庫(kù),每個(gè)倉(cāng)庫(kù)又可以包含多個(gè)具備不同tag的鏡像,
docker運(yùn)作中使用的默認(rèn)倉(cāng)庫(kù)是docker hub公共倉(cāng)庫(kù)。
倉(cāng)庫(kù)支持的操作類似git,當(dāng)用戶創(chuàng)建了自己的鏡像之后就可以使用push命令將它上傳到共有或者私有的倉(cāng)庫(kù)。這樣下次再另外一臺(tái)機(jī)器上使用這個(gè)鏡像的時(shí)候只需要從倉(cāng)庫(kù)里面pull下來(lái)就可以了。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站欄目:docker中鏡像與容器的關(guān)系是什么?-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://chinadenli.net/article32/hpipc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、云服務(wù)器、ChatGPT、網(wǎng)頁(yè)設(shè)計(jì)公司、靜態(tài)網(wǎng)站、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容