亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

Docker鏡像

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

關于Docker鏡像,有以下特性:

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

Docker容器

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

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

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

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

這里寫圖片描述

上圖從一個較為全面的角度闡述了Dockerfile、Docker鏡像Docker容器三者的關系。

Dockerfile體現(xiàn)

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

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

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

Docker鏡像體現(xiàn)

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

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

FROM ubuntu:14.04 :設置基礎鏡像,此時會使用基礎鏡像ubuntu:14.04的所有鏡像層,為簡單起見,圖中將其作為一個整體展示。

ADD run.sh /:將Dockerfile所在目錄的文件run.sh加至鏡像的根目錄,此時新一層的鏡像只有一項內容,即根目錄下的run.sh.

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

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

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

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

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

總結

Docker鏡像屬靜態(tài),Docker容器屬動態(tài),兩者之間有著千絲萬縷的關系。從Docker容器文件系統(tǒng)的角度來認識兩者,我相信會對大家有很大的幫助。

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

1.深刻理解Docker鏡像大小

2.其實docker commit很簡單

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

4.為什么有些容器文件動不得

5.打破MNT Namespace的容器VOLUME

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

相關文章

  • 在Docker中安裝Elasticsearch7.6.2的教程

    在Docker中安裝Elasticsearch7.6.2的教程

    這篇文章主要介紹了在Docker中安裝Elasticsearch7.6.2的教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Docke實例之搭建gitlab的方法

    Docke實例之搭建gitlab的方法

    本篇文章主要介紹了Docke實例之搭建gitlab的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 如何使用Docker部署Go Web應用的實現(xiàn)

    如何使用Docker部署Go Web應用的實現(xiàn)

    這篇文章主要介紹了如何使用Docker部署Go Web應用的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • docker pull很慢如何解決

    docker pull很慢如何解決

    這篇文章主要介紹了docker pull很慢的解決方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Docker進階之快速擴容的方法

    Docker進階之快速擴容的方法

    這篇文章主要介紹了Docker進階之快速擴容的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • 聊聊Docker中容器的創(chuàng)建與啟停問題

    聊聊Docker中容器的創(chuàng)建與啟停問題

    一個進程可以視為一個被執(zhí)行的應用程序,同樣,一個Docker容器可以視為一個運行中的Docker鏡像,這篇文章主要介紹了Docker中容器的創(chuàng)建與啟停,需要的朋友可以參考下
    2022-06-06
  • 從零開始:Docker中修改Nginx服務器配置

    從零開始:Docker中修改Nginx服務器配置

    在Docker中修改Nginx配置是一種常見的操作,它允許我們根據(jù)特定需求來自定義Nginx服務器的行為,通過修改Nginx配置,我們可以添加新的虛擬主機、更改端口號、啟用SSL等,需要的朋友可以參考下
    2023-10-10
  • docker /var/lib/docker/aufs/mnt 目錄清理方法

    docker /var/lib/docker/aufs/mnt 目錄清理方法

    在本篇文章里小編給各位整理的是關于docker /var/lib/docker/aufs/mnt 目錄清理方法,有需要的朋友們可以參考下。
    2020-03-03
  • Docker  Registry 私有倉庫搭建詳細步驟

    Docker Registry 私有倉庫搭建詳細步驟

    這篇文章主要介紹了Docker Registry 私有倉庫搭建的相關資料,需要的朋友可以參考下
    2016-10-10
  • docker cp 拷貝文件 和 進入容器的操作

    docker cp 拷貝文件 和 進入容器的操作

    這篇文章主要介紹了docker cp 拷貝文件 和 進入容器的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評論