您好,登錄后才能下訂單哦!
如果仔細觀察你會發現,Docker宿主機中某個鏡像所占用的磁盤空間和在 Docker Hub(倉庫)上看到的鏡像大小是不同的,例如 golang:1.9
在 Docker Hub (倉庫)顯示的是 272MB
,而鏡像下載后docker image ls
命令給出的卻是 733MB
。
這是因為 Docker Hub (倉庫)中顯示的大小是壓縮后的體積,在鏡像下載和上傳過程中鏡像是保持壓縮狀態的,以保證能夠更快速的下載或上傳鏡像,而 docker image ls
命令是鏡像下載到本地展開后的各層所占空間的總和。
Docker 鏡像是多層存儲結構,并且可以繼承、復用,因此不同鏡像可能會因為使用相同的基礎鏡像,從而擁有共同的層。docker image ls
命令列出的鏡像體積總和并非是所有鏡像實際消耗硬盤空間,因為基于 Union FS
技術(聯合文件系統),相同的層只需要保存一份即可,所以實際鏡像硬盤使用空間可能要比這個小的多。
可以通過以下命令來查看鏡像、容器、數據卷所占用的空間。
docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 52 0 9.846GB 9.846GB (100%)
Containers 0 0 0B 0B
Local Volumes 0 0 0B 0B
docker system --help
Usage: docker system COMMAND
Manage Docker
Options:
--help Print usage
Commands:
`df` Show docker disk usage
events Get real time events from the server
info Display system-wide information
prune Remove unused data
# 省略...
注意,docker 1.13.1(含) 后版本支持 system 子命令。
最后來總結下文章中的知識點
Union FS
的特性,不同docker鏡像可能會使用相同的基礎鏡像,doker images
命令列出的鏡像體積總和并不能代表實際使用的磁盤空間,需要使用 docker system df
命令來代替。參考文章
doker&k8s Qun [703906133]
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。