首頁  >  文章  >  運維  >  docker映像的傳輸分層嗎

docker映像的傳輸分層嗎

WBOY
WBOY原創
2022-08-17 16:33:492705瀏覽

docker映像的傳輸分層;因為docker映像是分層建置的,將建置映像的流程拆解,找到和其他服務的共同點,將其製定為一個基礎映像,Dockerfile中每條指定都會新建一個層。這樣可以節省磁碟空間,所以docker映像的傳輸分層。

docker映像的傳輸分層嗎

本教學操作環境:linux7.3系統、docker19.03版、Dell G3電腦。

docker映像的傳輸分層

鏡像是一種輕量級、可執行的獨立軟體包,它包含運行某個軟體所需的所有內容。我們將應用程式、配置打包成一個成型的、可交付、可部署的運行環境,包括程式碼、運行時所需要的函式庫、環境變數和設定檔等,這個大包好的運作環境就是image鏡像檔。

只有透過映像檔才能產生Docker容器實例。

docker映像分層

意義:將建構映像的過程拆解,找到和其他服務的共同點,將其製定為一個基礎映像。

優點:節省磁碟空間,

上傳/下載映像檔時,基礎映像如果已存在就不會重複上傳下載,提高上傳下載速度

缺點:改變基礎鏡像,所有子鏡像都會變動。

Docker映像分層機制

Docker映像是分層建構的,隨著我們深入學習Docker,我們會理解到Dockerfile中每個指定都會新建一個層。以下面Dockerfile指令為例:

FROM ubuntu:20.04#基础镜像
COPY . /app#复制文件
RUN make /app#编译文件
CMD python /app/app.py#入口文件

以上四條指令,在每一層上只記錄本層所做的更改,而且這些層是唯讀層。當啟動一個容器,Docker指揮在最頂端加入讀寫層,在容器內作的所有變更(寫日誌、修改、刪除檔案等,都保存到讀寫層內),一般稱該層為容器層,如下圖中所示:

docker映像的傳輸分層嗎

事實上,容器(container)和鏡像(image)最主要的差異就是容器加上了頂層的讀寫層。所有對容器的修改都發生在此層,鏡像並不會被修改,也即前面所說的 COW(copy-on-write)技術。容器需要讀取某個文件時,直接從底部只讀層去讀即可,而如果需要修改某文件,則將該文件拷貝到頂部讀寫層進行修改,只讀層保持不變。

每個容器都有自己的讀寫層,因此多個容器可以使用同一個鏡像,另外容器被刪除時,其對應的讀寫層也會被刪除,如果你希望多個容器共享或持久化數據,可以使用Docker volume。

推薦學習:《docker影片教學

以上是docker映像的傳輸分層嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn