Docker映象構建的兩種方式

2021-08-04 09:58:51 字數 1135 閱讀 8758

從容器構建映象(以下簡稱容器映象

使用dockerfile構建映象(以下簡稱dockerfile映象

容器映象的構建者可以任意修改容器的檔案系統後進行發布,這種修改對於映象使用者來說是不透明的,映象構建者一般也不會將對容器檔案系統的每一步修改,記錄進文件中,供映象使用者參考。

容器映象不能(更準確地說是不建議)通過修改,生成新的容器映象

從映象執行容器,實際上是在映象頂部上加了一層可寫層,所有對容器檔案系統的修改,都在這一層中進行,不影響已經存在的層。比如在容器中刪除乙個1g的檔案,從使用者的角度看,容器中該檔案已經沒有了,但從檔案系統的角度看,檔案其實還在,只不過在頂層中標記該檔案已被刪除,當然這個標記為已刪除的檔案還會占用映象空間。從容器構建映象,實際上是把容器的頂層固化到映象中。

也就是說, 對容器映象進行修改後,生成新的容器映象,會多一層,而且映象的體積只會增大,不會減小。長此以往,映象將變得越來越臃腫。docker提供的exportimport命令可以一定程度上處理該問題,但也並不是沒有缺點。

容器映象依賴的父映象變化時,容器映象必須進行重新構建。如果沒有編寫自動化構建指令碼,而是手工構建的,那麼又要重新修改容器的檔案系統,再進行構建,這些重複勞動其實是沒有價值的。

dockerfile映象是完全透明的,所有用於構建映象的指令都可以通過dockerfile看到。甚至你還可以遞迴找到本映象的任何父映象的構建指令。也就是說,你可以完全了解乙個映象是如何從零開始,通過一條條指令構建出來的。

dockerfile映象需要修改時,可以通過修改dockerfile中的指令,再重新構建生成,沒有任何問題。

dockerfile可以在github等原始碼管理**上進行託管,dockerhub自動關聯原始碼進行構建。當你的dockerfile變動,或者依賴的父映象變動,都會觸發映象的自動構建,非常方便。

** 不管是官方還是我個人,都推薦使用第二種方式構建映象。**

建立docker映象的兩種方式

docker run it ubuntu it意思是執行這個容器的時候是否進入容器,如果不需要進入容器中,那麼不需要新增 it。繼續在這個終端輸入docker commit ubuntu的id 自己的名稱 新映象的名稱 版本號tag 1.0 回車之後新的映象就生成了。通過docker image l...

批量停止docker的兩種方式

假設要批量停止的docker名字字首為 則可以執行下面兩條命令來停止。方法一 docker stop docker ps a grep awk docker stop 停止容器 返回在括號內執行指令碼的結果 docker ps a 列出所有容器的docker grep 管道上乙個命令的結果,grep...

docker之網路橋接的兩種方式

第一種 直接敲命令方式配置 安裝網橋管理工具包 bridge utile yum install bridge utils y 1.先檢視ip 是否有br0 ip a 2.brctl show 3使用brctl命令刪除網橋br0 brctl delbr br0 4關閉br0 ifconfig br0...