文章目錄
- 🐳 Docker 入門教程(三):鏡像操作命令
- 獲取鏡像:`docker pull`
- 查看鏡像:`docker images`
- 刪除鏡像:`docker rmi`
- 搜索鏡像:`docker search`
- 鏡像打標簽:`docker tag`
- 鏡像詳情與歷史:`inspect` 和 `history`
- 導出與導入鏡像
- 清理無用鏡像:`docker image prune`
- 快速命令匯總表
🐳 Docker 入門教程(三):鏡像操作命令
鏡像是 Docker 的基礎組件之一,本節我們全面梳理如何獲取、查看、管理和構建鏡像。配合示例和常用參數,確保能靈活使用這些命令完成日常開發任務。
獲取鏡像:docker pull
從遠程倉庫(默認 Docker Hub)下載鏡像非常簡單:
docker pull nginx
拉取指定版本:
docker pull redis:6.2
拉取指定平臺架構的鏡像(比如 M1/M2 芯片):
docker pull --platform linux/amd64 node
如果你不指定 tag,Docker 會默認使用
latest
。
查看鏡像:docker images
查看本地所有鏡像:
docker images
示例輸出:
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 08b152afcfae 3 days ago 133MB
redis 6.2 9bdb3d4e3f75 1 week ago 105MB
幾個常用參數:
-a
/--all
:顯示所有中間層鏡像(默認只顯示最終層)-q
/--quiet
:只輸出鏡像 ID,用于腳本中--filter dangling=true
:過濾出無 tag 的“懸空鏡像”
例子:查看所有懸空鏡像的 ID
docker images -q --filter dangling=true
刪除鏡像:docker rmi
刪除單個鏡像:
docker rmi nginx
一次刪除多個:
docker rmi nginx redis
如果鏡像被容器使用,普通刪除會失敗。這時可以使用 -f
強制刪除:
docker rmi -f nginx
注意:強制刪除前請確保相關容器不再需要該鏡像。
搜索鏡像:docker search
可以在命令行搜索 Docker Hub 上的公開鏡像:
docker search mysql
結果中會顯示鏡像名稱、描述、星標數等。
也可以加過濾條件,例如只顯示星標大于 5000 的:
docker search mysql --filter=stars=5000
鏡像打標簽:docker tag
給鏡像添加一個新的名稱或版本號:
docker tag nginx myrepo/nginx:v1
這不會復制鏡像,只是起了一個別名。
在你準備將鏡像上傳到倉庫時,這一步是必要的,因為倉庫通常要求格式為:倉庫名/鏡像名:版本
鏡像詳情與歷史:inspect
和 history
查看鏡像詳細元信息:
docker inspect nginx
這是一個 JSON 輸出,包含鏡像的配置、作者、構建參數等,非常適合調試或檢查。
想看看這個鏡像是如何一步步構建出來的,可以使用:
docker history nginx
輸出會顯示構建的每一層命令、大小和時間等內容。
導出與導入鏡像
鏡像可以導出為文件用于備份或離線傳輸:
docker save nginx -o nginx.tar
導入鏡像文件:
docker load -i nginx.tar
這個功能在公司內部傳輸、無外網環境中特別實用。
清理無用鏡像:docker image prune
長期使用 Docker,磁盤會迅速被未使用的舊鏡像占滿。可以用下面的命令清理它們。
只刪除“懸空鏡像”(無 tag):
docker image prune
刪除所有未被容器使用的鏡像(包括打過標簽的):
docker image prune -a
如果你還想清除容器、網絡等內容:
docker system prune -a
該命令會刪除所有未使用的資源,請三思。
快速命令匯總表
操作 | 命令 |
---|---|
拉取鏡像 | docker pull 鏡像名[:tag] |
查看鏡像列表 | docker images |
刪除鏡像 | docker rmi 鏡像名 |
打標簽 | docker tag 原鏡像 新名稱:tag |
查看詳情 | docker inspect 鏡像名 |
查看歷史 | docker history 鏡像名 |
搜索鏡像 | docker search 關鍵詞 |
導出/導入 | docker save / docker load |
清理鏡像 | docker image prune / docker system prune |