天天看點

Docker鏡像與容器的聯系

什麼是鏡像?

簡單說,Docker鏡像是一個不包含Linux核心而又精簡的Linux作業系統。

鏡像從哪裡來?

Docker Hub是由Docker公司負責維護的公共注冊中心,包含大量的容器鏡像,Docker工具預設從這個公共鏡像庫下載下傳鏡像。 https://hub.docker.com/explore

預設是國外的源,下載下傳會慢,建議配置國内鏡像倉庫:

# vi /etc/docker/daemon.json 

{"registry-mirrors": [ "https://registry.docker-cn.com"}

鏡像不是一個單一的檔案,而是有多層構成。我們可以通過docker history <ID/NAME> 檢視鏡像中各層内容及大小,每層對應着Dockerfile中的一條指令。Docker鏡像預設存儲在 /var/lib/docker/<storage-driver>中。

容器其實是在鏡像的最上面加了一層讀寫層,在運作容器裡做的任何檔案改動,都會寫到這個讀寫層。如果容器删除了,最上面的讀寫層也就删除了,改動也就丢失了。 Docker使用存儲驅動管理鏡像每層内容及可讀寫層的容器層。

Docker鏡像與容器的聯系

鏡像管理指令

指令 描述
ls 列出鏡像
build 建構鏡像來自dockerfile
history 檢視鏡像曆史
inspect 顯示一個或多個鏡像詳細資訊
pull 從鏡像倉庫拉取鏡像
push 推送一個鏡像到鏡像倉庫
rm 移除一個鏡像
prune 移除未使用的鏡像,沒有被标記或被任何容器引用的
tag 建立一個引用源鏡像标記目标鏡像
export 導出容器檔案系統到tar歸檔檔案
import 導入容器檔案系統tar歸檔檔案建立鏡像
save 儲存一個或多個鏡像到一個tar歸檔檔案
load 加載鏡像來自tar歸檔或标準輸入