3-3.4 刪除映象
阿新 • • 發佈:2018-10-31
rmi命令用於刪除映象。若不指定標籤,則刪除latest標籤
docker rmi [選項] <註冊名稱>/<映象名稱,id>:<標籤>
選項:
-f、--force=false
強制刪除映象--no-prune=false
不刪除不帶標籤的父級映象
1. 使用映象標籤刪除映象
$ docker rmi hello-world $ docker rmi user/hello:latest $ docker rmi 10.0.217.122:6666/hello:latest #遠端倉庫映象
刪除所有映象與刪除容器類似
$ docker rmi `docker images -aq`
當同一個映象有多個標籤時, docker rmi 命令只刪除該映象多個標籤中指定的標籤,並不影響映象檔案。該映象的其他標籤還是存在的,可以使用 docker images 檢視。
但當映象只剩一個標籤時,若使用 docker rmi 命令會徹底刪除該映象。
2. 使用映象ID 刪除映象
當使用 docker rmi 命令後面跟上映象ID時,會先刪除所有指向該映象的標籤,然後刪除該映象檔案本身。
注意,當該映象建立的容器存在時,映象檔案預設是無法刪除的,例如:
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 22f3abf9ee16 docker.io/centos "/bin/bash" 32 minutes ago Up 32 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:8000->80/tcp hello
存在一個以 docker.io/centos 映象為基礎建立的容器 hello,若此時刪除該 docker.io/centos映象,Docker 會提示有容器正在執行,無法刪除:
docker rmi docker.io/centos
Error response from daemon: conflict: unable to remove repository reference "docker.io/centos" (must force) - container 22f3abf9ee16 is using its referenced image 49f7960eb7e4
當然可以強制刪除映象,使用 -f(--force)引數:
docker rmi -f docker.io/centos
這種操作是不規範的,會有標籤<none>的臨時映象存在,被強制刪除的映象生成新的ID存在系統中。
因此,先刪除依賴該映象的所有容器,再刪除該映象。先刪除容器:
docker rm hello
使用ID刪除映象:
docker rmi 49f7960eb7e4
再檢視映象,發現該ID對應的映象已被刪除。