如何刪除Docker映象?


如果您已經使用Docker很長時間了,您的本地機器上可能已經存在許多未使用的映象。這些映象可能是以前下載的舊版本,或者只是您下載用於測試的映象。這些映象會不必要地佔用大量空間,並降低整體效能和體驗。此外,還有一些未使用的、懸空(dangling)的映象。

最好刪除這些舊映象,這將幫助您更好地跟蹤所有有用的映象。Docker允許您非常輕鬆地透過許多不同的命令刪除映象。您可以使用Docker rmi命令、Docker images rm命令,甚至Docker image prune命令來實現。此外,Docker允許您在這些命令中使用多個選項來策略性地刪除映象。

在本文中,我們將討論所有流行且最常用的命令,這些命令將允許您輕鬆刪除映象。

刪除Docker映象

如前所述,有幾個命令可以互換使用,以從系統中刪除一個或多個Docker映象。讓我們從最基本的命令開始。

$ docker image rm [OPTIONS] IMAGE [IMAGE...]

您還可以在此命令中使用多個選項。以下是其中最有用的一些選項。

  • --force - 您可以使用此選項強制刪除映象。
  • --no-prune - 如果您不想刪除未標記的映象,可以使用此選項。

請注意,您只能刪除那些沒有關聯容器的映象。如果您嘗試刪除此類映象,它將丟擲錯誤。要覆蓋此預設行為,您可以使用 --force 選項強制刪除映象。

例如,如果您想刪除帶有標籤 24 的 fedora 映象,可以使用以下命令。

$ docker image rm fedora:24

要檢查映象是否關聯了容器,可以使用以下兩個命令中的任何一個列出所有容器。

$ docker ps -a


$ docker container ls -a

如果您發現任何與該映象關聯的容器,您可以停止並刪除該容器,或者強制刪除它。

$ docker stop <container-name>


$ docker rm <container-name>

或者

$ docker rm -f <container-name>

刪除容器後,您現在可以繼續刪除映象。

使用更短的命令刪除映象

您還可以使用下面提到的另一個更短的命令來刪除映象。

$ docker rmi [OPTIONS] IMAGE [IMAGE...]

如果您不想在刪除映象之前檢查容器,可以使用 force 選項強制刪除它。

$ docker rmi -f <image-name>

此外,如果您想一次刪除多個映象,可以直接提及所有這些映象的映象ID或映象名稱,並用空格分隔。

$ docker rmi -f myimage1 myimage2 myimage2

透過修剪刪除映象

您還可以使用Docker image prune命令刪除所有懸空(dangling)映象。

$ docker image prune [OPTIONS]

您可以使用以下幾個選項:

  • --all - 刪除所有未使用的和懸空(dangling)映象。
  • --filter - 提供過濾器,只刪除某些特定的映象。
  • --force - 強制修剪映象。

例如,如果您想刪除系統中所有未使用的映象,可以使用以下命令。

$ docker image prune --all

如果您想一次刪除所有Docker映象,這是一個好方法。還有一種方法可以同時刪除所有映象。您可以使用子命令和Docker rmi命令一起使用。考慮以下命令。

$ docker rmi -f $(docker images -aq)

在這裡,我們使用了 force 選項以及 Docker rmi 命令作為父命令。我們沒有提及映象ID或名稱,而是使用了一個子命令,該子命令使用 all 和 quiet 選項列出所有映象的映象ID。

總而言之,在本文中,我們討論了為什麼定期刪除未使用的或懸空(dangling)映象是一個好習慣。我們討論瞭如何使用三個不同的命令以及多個選項來刪除映象。我們還討論瞭如何同時刪除多個或所有映象。我們希望您現在能夠輕鬆刪除Docker映象。

更新於:2021年8月6日

2K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.