Docker實踐(五):映象的概念、管理(檢視、下載、刪除)
阿新 • • 發佈:2019-02-06
映象的概念
映象是一個包含程式執行必要依賴環境和程式碼的只讀檔案,它採用分層的檔案系統,將每一次改變以讀寫層的形式增加到原來的只讀檔案上。映象是容器執行的基石。
- 下圖展示的是Docker映象的系統結構。其中,映象的最底層必須是一個稱為啟動檔案系統(bootfs)的映象,使用者不會與這一層直接打交道。bootfs的上層映象就是我們熟知的根映象。
- 映象的本質是磁碟上一系列檔案的集合。
檢視
docker images
:可以列出本機上的所有映象:
- REPOSITORY:倉庫名稱。
- [namespace/centos]:由名稱空間和實際的倉庫名稱組成。當你再Docker Hub上註冊一個賬戶時,賬戶名自動成為你的名稱空間,該名稱空間是用來區分Docke Hub上註冊的不同使用者或者組織的。
- [centos]:只有倉庫名。屬於頂級名稱空間,只用於官方映象。
- [dl.dockerpool.com:5000\centos:7]:指定URL路徑的方式。適用於自己搭建的Hub或者第三方Hub上獲取映象。
- TAG:用於區分同一個倉庫中的不同映象。
- IMAGE ID:映象的唯一標識:64位HashID。
- CREATED:映象 的建立時間。
- SIZE:映象所佔用的虛擬大小,該大小包含了所有共享檔案的大小。
docker images ce*
:萬用字元,找到符合條件的一系列映象。
docker inspect [NAME]/[CONTAINER ID]
:images只會列出映象的基本資訊,詳細資訊可以通過inspect
命令檢視:
下載
docker run
:命令執行時會在本地尋找映象,找不到的時候就會去Docker Hub上面搜尋並下載後執行。
docker search [NAME]
:下載之前可以通過search命令查詢搜尋符合的映象:
- NAME:映象名稱。
- DESCRIPTION:映象的簡要描述。
- STARS:使用者對映象的評分。
- OFFICIAL:是否為官方映象。
- AUTOMATED:是否使用了自動構建。
docker pull [NAME]
:可以預先將映象拉到本地。映象名必須完整地包含名稱空間和倉庫名。如果一個倉庫中存在多個映象,還必須制定TAG,否則使用預設TAG:latest。
刪除
docker rmi [NAME]/[CONTAINER ID]
對於不需要的映象,可以使用rmi
命令刪除。與移除容器的命令rm
相比,刪除映象的命令多了一個i,i即image的意思。
- 刪除多個:多個映象之間使用空格隔開。
-f
:強制刪除,大部分刪不掉的情況可能是因為這個映象被容器依賴了,可以選擇先移除容器。
docker rm $(docker ps -a -q)
:如果本地有很多已經停止執行的容器,一個個刪除很麻煩,可以使用下面的命令將這些容器一次性刪除,這樣就能減少無用容器對映象的依賴。
docker ps -a -q
:用來列出所有容器的ID