docker鏡像的傳輸分層嗎

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視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享