Docker深入理解

Docker深入理解

轉:https://www.cnblogs.com/bethal/p/5942369.html

來深入理解一下容器和鏡像的區別

在這裏插入圖片描述

鏡像:鏡像就是一堆只讀層,它們重疊在一起,上面一層會有一個指針指向下一層

容器:就是在鏡像top層加了一個可讀可寫的層

docker create

在這裏插入圖片描述

docker create 命令爲指定的鏡像(image)添加了一個可讀寫層,構成了一個新的容器。注意,這個容器並沒有運行

docker start

在這裏插入圖片描述

Docker start命令爲容器文件系統創建了一個進程隔離空間。注意,每一個容器只能夠有一個進程隔離空間。

docker run

在這裏插入圖片描述

docker run命令實際上就是docker create 和 docker start兩個命令的結合

docker stop

在這裏插入圖片描述

docker stop命令會向運行中的容器發送一個SIGTERM的信號,然後停止所有的進程

docker rm

在這裏插入圖片描述

docker commit

在這裏插入圖片描述

docker commit命令將容器的可讀寫層轉換爲一個只讀層,這樣就把一個容器轉換成了不可變的鏡像

在這裏插入圖片描述

docker bulid

img

docker build命令非常有趣,它會反覆的執行多個命令

img

我們從上圖可以看到,build命令根據Dockerfile文件中的FROM指令獲取到鏡像,然後重複地1)run(create和start)、2)修改、3)commit。在循環中的每一步都會生成一個新的層,因此許多新的層會被創建。

docker save

img

docker save命令會創建一個鏡像的壓縮文件,這個文件能夠在另外一個主機的Docker上使用。和export命令不同,這個命令爲每一個層都保存了它們的元數據。這個命令只能對鏡像生效。

docker export

img

docker export命令創建一個tar文件,並且移除了元數據和不必要的層,將多個層整合成了一個層,只保存了當前統一視角看到的內容(譯者注:expoxt後 的容器再import到Docker中,通過docker images –tree命令只能看到一個鏡像;而save後的鏡像則不同,它能夠看到這個鏡像的歷史鏡像)

docker history

img

docker history命令遞歸地輸出指定鏡像的歷史鏡像

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章