刪除 Docker 中的本地映象
本教程將介紹在 Docker 中刪除本地映象的方法。
刪除 Docker 中未使用和懸空的本地映像
假設除了有未標記的 docker 映象之外,你還有未使用的映象和一些你還想刪除的容器。在這種情況下,請選擇下面顯示的命令。
$ docker system prune -a
此命令將提示警告,讓你知道如果你選擇是,此命令將:
- 刪除所有停止的容器;
- 刪除至少一個容器未使用的所有網路;
- 刪除所有沒有至少一個與之關聯的容器的映象;
- 刪除所有快取。
但是,如果此命令不符合你需要完成的內容,並且你只想刪除:
- 未標記或懸空的映象;
- 停止的容器;
- 懸空快取;
- 網路未被至少一個容器使用。
在這種情況下,使用 prune
命令而不包括 -a
標籤,如下所示。
$ docker system prune
刪除 Docker 中的特定本地映像
我們可能還想從本地系統中刪除特定映象,並保持所有其他檔案不變。
在這種情況下,我們需要一個我們想要刪除的特定映象的映象 ID。我們可以通過 Docker 桌面應用程式中的映象頁面訪問它。
我們還可以通過執行以下命令,使用我們的終端或 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 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