最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker 容器文件系統(tǒng)詳細(xì)介紹(圖文)

 更新時(shí)間:2016年12月02日 15:22:09   作者:孫宏亮  
這篇文章主要介紹了Docker 容器文件系統(tǒng)詳細(xì)介紹(圖文)的相關(guān)資料,這里對(duì)Docker 容器文件系統(tǒng)進(jìn)行了具體的分析詳解,需要的朋友可以參考下

Docker 容器文件系統(tǒng)

Dockerfile是軟件的原材料,Docker鏡像是軟件的交付品,而Docker容器則可以認(rèn)為是軟件的運(yùn)行態(tài)。從應(yīng)用軟件的角度來(lái)看,Dockerfile、Docker鏡像與Docker容器分別代表軟件的三個(gè)不同階段,Dockerfile面向開(kāi)發(fā),Docker鏡像成為交付標(biāo)準(zhǔn),Docker容器則涉及部署與運(yùn)維,三者缺一不可,合力充當(dāng)Docker體系的基石。

Docker鏡像

Docker鏡像是Dockerfile的產(chǎn)物,是Docker容器的前提,大有承前啟后之意。Docker技術(shù)發(fā)展兩年有余,相信大家很早就聽(tīng)說(shuō)過(guò)Docker大多采用聯(lián)合文件系統(tǒng)(Union Filesystem),為Docker容器提供文件系統(tǒng)服務(wù)。

關(guān)于Docker鏡像,有以下特性:

  1. 由Dockerfile生成
  2. 呈現(xiàn)層級(jí)結(jié)構(gòu)
  3. 每層鏡像包含:鏡像文件以及鏡像json元數(shù)據(jù)信息

Docker容器

Docker容器是Docker鏡像的運(yùn)行態(tài)體現(xiàn)。概括而言,就是在Docker鏡像之上,運(yùn)行進(jìn)程。進(jìn)程啟動(dòng)的方式有兩種,用戶即可以選擇運(yùn)行自己另行指定的命令,也可以選擇運(yùn)行Docker鏡像內(nèi)部指定的命令。

Docker容器的文件系統(tǒng),可以說(shuō)大部分由Docker鏡像來(lái)提供。為什么說(shuō)是大部分呢?其實(shí)是有原因的,鏡像內(nèi)容雖多,但依然不是全部。下面,我會(huì)帶大家看看,Docker鏡像中有什么,而Docker容器的哪些內(nèi)容不在Docker鏡像中。

Docker容器文件系統(tǒng)

那就讓我們一圖看盡Docker容器的文件系統(tǒng):

這里寫(xiě)圖片描述

上圖從一個(gè)較為全面的角度闡述了Dockerfile、Docker鏡像Docker容器三者的關(guān)系。

Dockerfile體現(xiàn)

Docker容器已經(jīng)在運(yùn)行,但是追本溯源,我們依然可以找到Dockerfile的影子。上圖中,我們可以發(fā)現(xiàn),Docker容器依附Docker鏡像,而Docker鏡像Dockerfile是這樣的:

FROM ubuntu:14.04
ADD run.sh /
VOLUME /data
CMD ["./run.sh"]

我們可以看到,以上Dockerfile中的每一條命令,都在Docker鏡像中以一個(gè)獨(dú)立鏡像層的形式存在。

Docker鏡像體現(xiàn)

毫無(wú)疑問(wèn),Docker鏡像是由Dockerfile構(gòu)建而成,我們也可以看到圖中下4層被標(biāo)記為Docker鏡像。作為Docker技術(shù)的核心,我們必須了解Docker如何構(gòu)建鏡像,以及Docker鏡像構(gòu)建之后的產(chǎn)物是什么。

初次接觸Docker,了解層級(jí)管理的Docker鏡像之后,很容易就認(rèn)為:每一層Docker鏡像中都含有相應(yīng)的文件系統(tǒng)文件。其實(shí)不然,以上Dockerfile中的4條命令,則是一個(gè)很好的佐證。

FROM ubuntu:14.04 :設(shè)置基礎(chǔ)鏡像,此時(shí)會(huì)使用基礎(chǔ)鏡像ubuntu:14.04的所有鏡像層,為簡(jiǎn)單起見(jiàn),圖中將其作為一個(gè)整體展示。

ADD run.sh /:將Dockerfile所在目錄的文件run.sh加至鏡像的根目錄,此時(shí)新一層的鏡像只有一項(xiàng)內(nèi)容,即根目錄下的run.sh.

VOLUME /data:設(shè)定鏡像的VOLUME,此VOLUME在容器內(nèi)部的路徑為/data。需要注意的是,此時(shí)并未在新一層的鏡像中添加任何文件,但更新了鏡像的json文件,以便通過(guò)此鏡像啟動(dòng)容器時(shí)獲取這方面的信息。

CMD ["./run.sh"]:設(shè)置鏡像的默認(rèn)執(zhí)行入口,此命令同樣不會(huì)在新建鏡像中添加任何文件,僅僅在上一層鏡像json文件的基礎(chǔ)上更新新建鏡像的json文件。Docker容器體現(xiàn)

涉及到Docker容器,便是動(dòng)態(tài)的內(nèi)容,一切似乎都有了生命。上文曾提及,Docker容器的文件系統(tǒng)中不僅包含Docker鏡像。此言不虛,圖中的頂上兩層,就是Docker為Docker容器新建的內(nèi)容,而這兩層恰恰不屬于鏡像范疇。

這兩層分別為Docker容器的初始層(Init Layer)與可讀寫(xiě)層(Read-Write Layer),初始層中大多是初始化容器環(huán)境時(shí),與容器相關(guān)的環(huán)境信息,如容器主機(jī)名,主機(jī)host信息以及域名服務(wù)文件等。

再來(lái)看可讀寫(xiě)層,這一層的作用非常大,Docker的鏡像層以及頂上的兩層加起來(lái),Docker容器內(nèi)的進(jìn)程只對(duì)可讀寫(xiě)層擁有寫(xiě)權(quán)限,其他層對(duì)進(jìn)程而言都是只讀的(Read-Only)。如AUFS等文件系統(tǒng)下,寫(xiě)下層鏡像內(nèi)容即會(huì)涉及COW(Copy-on-Write)技術(shù)。另外,關(guān)于VOLUME以及容器的hosts、hostname、resolv.conf文件等都會(huì)掛載到這里。需要額外注意的是:雖然Docker容器有能力在可讀寫(xiě)層看到VOLUME以及hosts文件等內(nèi)容,但那都僅僅是掛載點(diǎn),真實(shí)內(nèi)容位于宿主機(jī)上。

總結(jié)

Docker鏡像屬靜態(tài),Docker容器屬動(dòng)態(tài),兩者之間有著千絲萬(wàn)縷的關(guān)系。從Docker容器文件系統(tǒng)的角度來(lái)認(rèn)識(shí)兩者,我相信會(huì)對(duì)大家有很大的幫助。

Docker鏡像以及Docker容器文件系統(tǒng),絕對(duì)是非常細(xì)致的內(nèi)容,基于這些概念,實(shí)在有太多有意思的話題可以展開(kāi),本系列后續(xù)會(huì)有以下多篇文章來(lái)分析:

1.深刻理解Docker鏡像大小

2.其實(shí)docker commit很簡(jiǎn)單

3.不得不說(shuō)的docker save與docker export區(qū)別

4.為什么有些容器文件動(dòng)不得

5.打破MNT Namespace的容器VOLUME

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • docker在已有的tomcat鏡像上打新的鏡像的Dockerfile編寫(xiě)說(shuō)明介紹

    docker在已有的tomcat鏡像上打新的鏡像的Dockerfile編寫(xiě)說(shuō)明介紹

    這篇文章主要介紹了docker在已有的tomcat鏡像上打新的鏡像的Dockerfile編寫(xiě)說(shuō)明介紹,需要的朋友可以參考下
    2016-10-10
  • 如何使用Docker Desktop部署GitLab

    如何使用Docker Desktop部署GitLab

    本文介紹了如何使用Docker Desktop在Windows系統(tǒng)上部署GitLab,包括環(huán)境準(zhǔn)備、安裝Docker、配置GitLab鏡像、容器配置等步驟,感興趣的朋友一起看看吧
    2025-03-03
  • 搭建Docker私有鏡像倉(cāng)庫(kù)的實(shí)現(xiàn)步驟

    搭建Docker私有鏡像倉(cāng)庫(kù)的實(shí)現(xiàn)步驟

    私有鏡像倉(cāng)庫(kù)可以更好地管理和控制鏡像的訪問(wèn)和使用,提高開(kāi)發(fā)和部署效率,減少網(wǎng)絡(luò)延遲和不穩(wěn)定因素的影響,本文主要介紹了搭建私有鏡像倉(cāng)庫(kù),感興趣的可以了解一下
    2024-12-12
  • Docker通過(guò)容器生成鏡像提交DockerCommit詳解

    Docker通過(guò)容器生成鏡像提交DockerCommit詳解

    這篇文章主要介紹了Docker通過(guò)容器生成鏡像提交DockerCommit的詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-09-09
  • docker打包前端項(xiàng)目的實(shí)現(xiàn)示例

    docker打包前端項(xiàng)目的實(shí)現(xiàn)示例

    本文介紹了如何將前端項(xiàng)目打包到Docker容器中,包括編寫(xiě)Dockerfile文件、創(chuàng)建鏡像和容器以及解決部署過(guò)程中遇到的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-09-09
  • 詳解Docker中安裝配置Oracle數(shù)據(jù)庫(kù)

    詳解Docker中安裝配置Oracle數(shù)據(jù)庫(kù)

    本篇文章主要介紹了詳解Docker中安裝配置Oracle數(shù)據(jù)庫(kù),具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-04-04
  • Docker服務(wù)的重啟服務(wù)命令詳解(systemctl restart docker)

    Docker服務(wù)的重啟服務(wù)命令詳解(systemctl restart docker)

    這篇文章主要介紹了Docker服務(wù)的重啟服務(wù)命令(systemctl restart docker),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Docker跨主機(jī)網(wǎng)絡(luò)(manual)的實(shí)現(xiàn)

    Docker跨主機(jī)網(wǎng)絡(luò)(manual)的實(shí)現(xiàn)

    這篇文章主要介紹了Docker跨主機(jī)網(wǎng)絡(luò)(manual)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • docker maven plugin快速部署微服務(wù)的詳細(xì)流程

    docker maven plugin快速部署微服務(wù)的詳細(xì)流程

    本文給大家介紹docker?maven?plugin微服務(wù)快速部署方法,主要將Dockerfile寫(xiě)在pom中方便項(xiàng)目管理,將微服務(wù)的 打包、上傳、鏡像創(chuàng)建操作整合到一條命令中執(zhí)行,感興趣的朋友跟隨小編一起看看吧
    2022-04-04
  • 使用WSL修改docker文件存儲(chǔ)位置具體步驟

    使用WSL修改docker文件存儲(chǔ)位置具體步驟

    這篇文章主要為大家介紹了使用WSL修改docker文件存儲(chǔ)位置具體步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10

最新評(píng)論

涡阳县| 临江市| 勐海县| 钟祥市| 合山市| 金堂县| 那曲县| 阿拉善右旗| 襄汾县| 安徽省| 日喀则市| 平度市| 搜索| 襄樊市| 广安市| 辉县市| 始兴县| 民乐县| 乌什县| 文山县| 定南县| 高邮市| 无锡市| 历史| 隆安县| 崇仁县| 景洪市| 德令哈市| 平远县| 海口市| 安塞县| 石家庄市| 铜山县| 隆德县| 信丰县| 大连市| 柳林县| 荔波县| 合阳县| 渝中区| 龙江县|