1. 程式人生 > >Docker實踐(五):映象的概念、管理(檢視、下載、刪除)

Docker實踐(五):映象的概念、管理(檢視、下載、刪除)

映象的概念

映象是一個包含程式執行必要依賴環境和程式碼的只讀檔案,它採用分層的檔案系統,將每一次改變以讀寫層的形式增加到原來的只讀檔案上。映象是容器執行的基石。

  • 下圖展示的是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