久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

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

 汪子熙 2019-04-04

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

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

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

上圖左邊是Docker鏡像的內(nèi)部實現(xiàn)細(xì)節(jié),,我們能看到多個只讀層疊加在一起,,層與層之間通過指針關(guān)聯(lián),這些層能夠在運行Docker的宿主機的文件系統(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è)計是Docker實現(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查看本機所有容器列表,,會發(fā)現(xiàn)有的容器處于運行狀態(tài),有的處于退出狀態(tài),。

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

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

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

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

做個實驗:

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

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

docker create <image-id>

先看它的幫助文檔:

試著執(zhí)行以下:

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

7ee10851c3f1e53bbd35e5f196f34de560afa1a20d9bf1ced587630dbcda877b

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

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

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

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

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

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多