5.1 指令 docker images
如果你的系統裡已經存有 Docker 的映像檔,為了管理它們有一些特定的指令。首先,我們要討論的是 docker images
和 docker rmi
。在這堂課中,我們會詳細講解如何使用這些指令來有效管理 Docker 映像檔。
指令 docker images
顯示本地系統中儲存的映像檔清單。它會顯示像是儲存庫名稱、標籤、映像檔 ID、建立日期和大小等資訊。這些資訊能快速讓你評估有哪些映像檔可以使用,以及它們佔用了多少空間。
語法:
docker images [OPTIONS] [REPOSITORY[:TAG]]
其中:
-
OPTIONS
: 用於過濾和格式化輸出的其他參數。 -
[REPOSITORY[:TAG]]
: (可選)以儲存庫名稱和/或標籤為篩選條件。
基本用法範例
這個範例會顯示所有本地儲存的映像檔清單。
docker images
指令 docker images
的範例輸出:
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 5a7e5b1a3b8c 2 days ago 133MB
ubuntu 20.04 ba6acccedd29 3 weeks ago 72.9MB
myapp 1.0 d1e5e2ff5ff2 1 month ago 89.5MB
欄位描述:
- REPOSITORY: 映像檔所屬的儲存庫名稱。
- TAG: 代表映像檔版本的標籤。
- IMAGE ID: 映像檔的唯一識別碼。
- CREATED: 映像檔建立的時間。
- SIZE: 映像檔在記憶體中的大小。
5.2 圖像篩選
圖像篩選可以縮小 docker images
命令的結果範圍,讓你只看到符合條件的圖像。這在你的系統中有很多圖像時特別有用,幫助你快速根據 repository 名稱、tag 或其他參數找到具體的圖像。
1. 根據 repository 篩選
docker images nginx
這個例子將只顯示來自 nginx
repository 的圖像。
2. 根據 tag 篩選
docker images ubuntu:20.04
這個例子將顯示帶有 tag 20.04
的 ubuntu
圖像。
3. 使用參數 -a (all)
默認情況下,docker images
命令只顯示圖像的最新版本。要顯示所有圖像,包括中間層,請使用 -a
選項。
docker images -a
4. 格式化輸出
為了便於閱讀或與其他工具結合使用,你可以使用選項 --format
自定義輸出格式。這在腳本和任務自動化中特別有用。
docker images --format "{{.Repository}}:{{.Tag}} {{.ID}}"
5.3 指令 docker rmi
指令 docker rmi
用於刪除一個或多個 Docker 映像檔。這對於釋放磁碟空間和保持系統整潔非常有用,特別是當映像檔不再被使用時。
語法:
docker rmi [OPTIONS] IMAGE [IMAGE...]
參數說明:
- OPTIONS: 其他選項,用於管理刪除過程。
- IMAGE: 需要刪除的映像檔的名稱、標籤或 ID。
基本用法範例
這個範例刪除了名稱為 nginx
的映像檔。
docker rmi nginx
通過映像 ID 刪除
這個範例刪除了 ID 為 5a7e5b1a3b8c
的映像檔。
docker rmi 5a7e5b1a3b8c
強制刪除映像檔
如果映像檔被容器使用或被鎖定,可能無法正常刪除。要強制刪除,請使用選項 -f (force)
。
docker rmi -f myapp:1.0
刪除多個映像檔
要一次刪除多個映像檔,請用空格分隔它們。
docker rmi nginx ubuntu:20.04 myapp:1.0
5.4 實際例子
範例 1: 查看所有圖像
為了獲取存儲在本地機器上的所有圖像完整列表,執行以下命令:
docker images
該命令將顯示一個表格,包含存儲庫名稱、標籤、圖像 ID、創建日期和大小。
範例 2: 查看格式化輸出的圖像列表
為了獲取格式化的圖像列表,比如僅輸出存儲庫名稱和標籤:
docker images --format "{{.Repository}}:{{.Tag}}"
這個例子展示了如何使用 --format
選項自定義輸出,這在編寫腳本時很方便。
範例 3: 刪除所有未使用的圖像
如果你想刪除所有未被容器使用的圖像,首先獲取它們的列表,然後進行刪除:
docker images -q
docker rmi $(docker images -q)
命令 docker images -q
僅輸出所有本地保存圖像的 ID,然後將這些 ID 傳遞給 docker rmi
進行刪除。
範例 4: 刪除 dangling images
Dangling images
是沒有標籤的圖像,這些圖像通常在圖像更新或失敗構建後產生。要刪除這些圖像,使用以下命令:
docker rmi $(docker images -f "dangling=true" -q)
此處 -f "dangling=true"
過濾掉沒有標籤的圖像,-q
僅輸出它們的 ID,然後將這些 ID 傳遞給刪除命令。
GO TO FULL VERSION