亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

容器和容器鏡像的區(qū)別,您真的了解嗎

zengdongbao / 3234人閱讀

摘要:我們首先來看容器和容器鏡像。容器和容器鏡像一樣,也是若干層的疊加,唯一區(qū)別是所有只讀層的最上面一層,是一層可讀可寫層,如上圖綠色圖例所示。希望這篇文章能幫助大家理解容器和容器鏡像的區(qū)別。

很多剛剛接觸容器技術(shù)的朋友,不容易弄清楚容器,容器鏡像和Docker這幾個詞的區(qū)別和聯(lián)系。

我們首先來看容器和容器鏡像。舉個例子,執(zhí)行命令行docker search nginx,搜索結(jié)果的一條條記錄就是一個個容器鏡像。

所謂鏡像,就是一個靜態(tài)概念,一個鏡像由若干只讀層(read-only layer)構(gòu)成。

上圖左邊是Docker鏡像的內(nèi)部實(shí)現(xiàn)細(xì)節(jié),我們能看到多個只讀層疊加在一起,層與層之間通過指針關(guān)聯(lián),這些層能夠在運(yùn)行Docker的宿主機(jī)的文件系統(tǒng)上訪問到。

Linux的統(tǒng)一文件系統(tǒng)(union file system)技術(shù)將這些疊加的只讀層合并成一個文件系統(tǒng),該系統(tǒng)為這些只讀層提供了一個統(tǒng)一的視角,從而為Docker的用戶隱藏了多層的存在。

從Docker用戶的視角出發(fā),一個Docker鏡像只存在一個文件系統(tǒng),即上圖右邊所示。

這些文件系統(tǒng)的設(shè)計(jì)是Docker實(shí)現(xiàn)細(xì)節(jié),一般情況下我們不用去深究。但如果您足夠好奇,使用命令sudo tree瀏覽目錄 /var/lib/docker即可:

比如我用命令docker images瀏覽下載到本地的docker鏡像:

其中一個叫jerry-nginx的鏡像,是一個web應(yīng)用,它的所有內(nèi)容能在/var/lib/docker目錄下的這個目錄查到:

講完了容器鏡像,我們再來看容器。

容器和容器鏡像一樣,也是若干層的疊加,唯一區(qū)別是所有只讀層的最上面一層,是一層可讀可寫層,如上圖綠色圖例所示。

初學(xué)者可以記住這個簡單的公式:容器 = 容器鏡像 + 可讀可寫層

我們?nèi)绻妹頳ocker ps --all查看本機(jī)所有容器列表,會發(fā)現(xiàn)有的容器處于運(yùn)行狀態(tài),有的處于退出狀態(tài)。

因此,一個處于運(yùn)行狀態(tài)的容器(running container)包含一個可讀寫的文件系統(tǒng)加上隔離的進(jìn)程空間。

容器里的進(jìn)程可以對這個可讀寫文件系統(tǒng)內(nèi)的文件進(jìn)行修改、刪除、創(chuàng)建等操作。

鏡像里每一層其實(shí)都能在docker文件夾的containers子目錄下找到:

上圖每一個紅色文件夾代表鏡像里的一層,藍(lán)色文件包含了該層運(yùn)行時的日志文件,或者網(wǎng)絡(luò)相關(guān)配置等。

做個實(shí)驗(yàn):

ubuntu這個容器執(zhí)行結(jié)束后,使用find / -name i042416.txt文件,這說明docker運(yùn)行時能對宿主機(jī)的文件系統(tǒng)進(jìn)行寫操作。

下面分析幾個常用的易混淆的命令。

docker create

先看它的幫助文檔:

試著執(zhí)行以下:

產(chǎn)生一個輸出id:

7ee10851c3f1e53bbd35e5f196f34de560afa1a20d9bf1ced587630dbcda877b

create創(chuàng)建的容器,狀態(tài)變?yōu)閏reated:

docker create命令給通過命令行傳入的容器鏡像創(chuàng)建了一個新的可讀可寫層,從而生成了一個新的容器實(shí)例:

然后再執(zhí)行docker start,輸入docker create創(chuàng)建的容器實(shí)例ID,就可以啟動這個容器實(shí)例了。

而docker run其實(shí)就是docker create和docker start這兩個命令合二為一的版本。

希望這篇文章能幫助大家理解容器和容器鏡像的區(qū)別。
要獲取更多Jerry的原創(chuàng)文章,請關(guān)注公眾號"汪子熙":

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/27631.html

相關(guān)文章

  • 不正宗 docker 入門教程-啟動一個容器(1/3)

    摘要:從命名上就知道這是一篇簡單粗暴的新手入門教程,為什么要簡單粗暴我認(rèn)為有自學(xué)能力的人幫他入門就夠了,不能自學(xué)的一時半會兒也教不會,不符合入門教程的初衷,建議出門左拐去找找視頻教程本章目標(biāo)大概了解是個什么玩意知道常用的指令參數(shù)能啟動一個容器不然 從命名上就知道這是一篇簡單粗暴的docker新手入門教程, 為什么要簡單粗暴? 我認(rèn)為有自學(xué)能力的人幫他入門就夠了, 不能自學(xué)的一時半會兒也教不會...

    YorkChen 評論0 收藏0
  • 使用Docker統(tǒng)一團(tuán)隊(duì)開發(fā)環(huán)境

    摘要:開場白作為一個技術(shù)團(tuán)隊(duì)的,你是如何保證成員的開發(fā)環(huán)境達(dá)到公司的標(biāo)準(zhǔn),或者是你定制的最低要求的如果你的回答是差不多就行了,有問題再說,那么,你已經(jīng)在給自己挖坑了。好的,成員們開始構(gòu)建你定制的開發(fā)環(huán)境了。 開場白 作為一個技術(shù)團(tuán)隊(duì)的Leader,你是如何保證成員的開發(fā)環(huán)境達(dá)到公司的標(biāo)準(zhǔn),或者是你定制的最低要求的?如果你的回答是:差不多就行了,有問題再說,那么,你已經(jīng)在給自己挖坑了。 同事A...

    alin 評論0 收藏0
  • 如何理解LXC與Docker之間主要區(qū)別

    摘要:它目前由一個兩人的團(tuán)隊(duì)領(lǐng)導(dǎo)來自的和。因?yàn)槟壳暗募軜?gòu),應(yīng)用程序和服務(wù)是為正常的多程序操作系統(tǒng)環(huán)境設(shè)計(jì)的,所以需要去尋找一種以的方式來工作或使用工具來支持。是一個告訴如何從鏡像用特定的應(yīng)用程序來創(chuàng)建容器的腳本。公司受到風(fēng)投支持,積極投入市場。 這篇文章從兩個部分來探討LXC,LXC和Docker的容器托管,以及輕便的容器技術(shù)將取代虛擬技術(shù)的可能性。 LXC有可能會改變我們?nèi)绾芜\(yùn)行和縮放應(yīng)用...

    lovXin 評論0 收藏0
  • 三年后,我們從 Docker 轉(zhuǎn)到了 RKT

    摘要:在被納入后,與之爭日趨白熱化。一如微軟曾經(jīng)試圖通過在中安裝來排擠,現(xiàn)在正在嘗試將融入到,以此來打擊,,和。如同微軟確確實(shí)實(shí)提升了的性能。瀏覽器突出了微軟的優(yōu)勢,所以他們在年內(nèi)都沒有繼續(xù)開發(fā)了。 在 Swarm 被納入 Docker 1.12后,Swarm 與 K8S 之爭日趨白熱化。本文作者 Adriaan de Jonge 身為 Xebia CTO ,專精 DevOps 及持續(xù)交付,...

    Achilles 評論0 收藏0
  • 一份Docker反方辯論——我還是用Heroku好了

    摘要:那都是老一套了。已死已經(jīng)沒有人用了。現(xiàn)在所有的一切都在容器化,它是未來。這是確保它可靠的唯一方式。我現(xiàn)在需要一個是的,為了穩(wěn)定性。我猜是規(guī)模的對,沒錯。我明白了,好吧,我懂了。那我來重復(fù)一遍確保我領(lǐng)悟了這些。 這是一篇在國外社區(qū)非?;鸬奈恼?。由CircleCI創(chuàng)始人所寫,追逐熱點(diǎn)新技術(shù)的程序員與只想做個簡單web應(yīng)用的程序員對話,Docker到底能否解決簡單小應(yīng)用的問題嗎?Herok...

    codeGoogle 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<