刪除影象

docker rmi 命令用於刪除影象:

docker rmi <image name>

必須使用完整的影象名稱來刪除影象。除非已標記影象以刪除登錄檔名稱,否則需要指定它。例如:

docker rmi registry.example.com/username/myAppImage:1.3.5

也可以通過 ID 刪除影象:

docker rmi 693bce725149

為方便起見,只要指定的子字串是明確的,就可以通過僅指定影象 ID 的前幾個字元來按影象 ID 刪除影象:

docker rmi 693

注意: 即使存在使用該影象的容器,也可以刪除影象; docker rmi 只是解開影象。

如果沒有容器正在使用影象,則會對其進行垃圾回收。如果容器使用影象,則在刪除使用它的所有容器後,將對影象進行垃圾收集。例如:

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED                  STATUS                     PORTS               NAMES
5483657ee07b        hello-world         "/hello"            Less than a second ago   Exited (0) 2 seconds ago                       small_elion

$ docker rmi hello-world
Untagged: hello-world:latest

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED                  STATUS                      PORTS               NAMES
5483657ee07b        693bce725149        "/hello"            Less than a second ago   Exited (0) 12 seconds ago                       small_elion

刪除所有未啟動容器的影象

要刪除所有沒有已啟動容器的本地映像,可以提供映像列表作為引數:

docker rmi $(docker images -qa)

刪除所有影象

如果要刪除影象而不管它們是否具有已啟動的容器,請使用 force 標誌(-f):

docker rmi -f $(docker images -qa)

刪除懸空影象

如果影象沒有被標記並且沒有被任何容器使用,那麼它就是晃來晃去,可能會像這樣刪除:

docker images -q --no-trunc -f dangling=true | xargs -r docker rmi