刪除 Docker 中的本地映象

Isaac Tony 2024年2月15日
  1. 刪除 Docker 中未使用和懸空的本地映像
  2. 刪除 Docker 中的特定本地映像
  3. 使用 Docker 中的過濾器刪除未標記的本地映象
  4. 刪除 Docker 中的所有本地映象
刪除 Docker 中的本地映象

本教程將介紹在 Docker 中刪除本地映象的方法。

刪除 Docker 中未使用和懸空的本地映像

假設除了有未標記的 docker 映象之外,你還有未使用的映象和一些你還想刪除的容器。在這種情況下,請選擇下面顯示的命令。

$ docker system prune -a

此命令將提示警告,讓你知道如果你選擇是,此命令將:

  • 刪除所有停止的容器;
  • 刪除至少一個容器未使用的所有網路;
  • 刪除所有沒有至少一個與之關聯的容器的映象;
  • 刪除所有快取。

但是,如果此命令不符合你需要完成的內容,並且你只想刪除:

  • 未標記或懸空的映象;
  • 停止的容器;
  • 懸空快取;
  • 網路未被至少一個容器使用。

在這種情況下,使用 prune 命令而不包括 -a 標籤,如下所示。

$ docker system prune

刪除 Docker 中的特定本地映像

我們可能還想從本地系統中刪除特定映象,並保持所有其他檔案不變。

在這種情況下,我們需要一個我們想要刪除的特定映象的映象 ID。我們可以通過 Docker 桌面應用程式中的映象頁面訪問它。

使用 Docker Desktop 訪問映象 ID

我們還可以通過執行以下命令,使用我們的終端或 Docker CLI 訪問映像 ID。

isaactonyloi@DESKTOP-HV44HT6:~$ docker images -a
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    c316d5a335a5   3 weeks ago   142MB

現在我們已經獲得了映象 ID,我們可以使用 docker rmi 命令附加到映象 ID 中刪除該特定映象,如下所示。

$ docker rmi c316d5a335a5

輸出:

Untagged: nginx:latest
Untagged: nginx@sha256:2834dc507516af02784808c5f48b7cbe38b8ed5d0f4837f16e78d00deb7e7767
Deleted: sha256:c316d5a335a5cf324b0dc83b3da82d7608724769f6454f6d9a621f3ec2534a5a
Deleted: sha256:67e568696593c33b4a15c9d81dc6f67499b8d973b88eb49b53d47bf4dbf4d187
Deleted: sha256:0f8d4e3d979c540644f248b4206cf540978166b095223bdc950628dca2e8f3f1
Deleted: sha256:5d75bfe8a7422476a495b27c8a1598d1206137631d350b8bdee13bc88f365282
Deleted: sha256:8284a9e28c625b2826efdd6160ea1ff7f710881a4a2afe1ef58a5eb51d3f919e
Deleted: sha256:89a1db9e1079b7574c1a707bc8c1fe04ff723bc71d4bca8bc48653e9a32186d2
Deleted: sha256:7d0ebbe3f5d26c1b5ec4d5dbb6fe3205d7061f9735080b0162d550530328abd6

使用 Docker 中的過濾器刪除未標記的本地映象

我們還可以使用過濾器和萬用字元來識別懸空映象,即不與任何容器關聯的映象。我們可以使用過濾標籤 -f找到滿足條件 dangling=true 的圖片。

下面的命令應該列出與任何容器無關的所有映象。但是,請注意,如果你的系統中沒有未標記的映象,則該命令將僅返回標頭。

$ docker images -a -f dangling=true
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    c316d5a335a5   3 weeks ago   142MB

刪除 Docker 中的所有本地映象

當與 -a 標籤一起使用時,-q 標籤允許我們檢索並列出本地系統中的所有映象 ID。

$ docker images -a -q
54c9d81cbb44
c316d5a335a5

使用此命令,我們可以列出 docker rmi 下的所有映象,以從我們的系統中刪除所有映象。這是我們如何巢狀該命令以消除所有映象。

$ docker rmi $(docker images -a -q)

輸出:

Untagged: ubuntu:latest
Untagged: ubuntu@sha256:669e010b58baf5beb2836b253c1fd5768333f0d1dbcb834f7c07a4dc93f474be
Deleted: sha256:54c9d81cbb440897908abdcaa98674db83444636c300170cfd211e40a66f704f
Deleted: sha256:36ffdceb4c77bf34325fb695e64ea447f688797f2f1e3af224c29593310578d2
作者: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

相關文章 - Docker Image