概要
Dockerのイメージを削除する際、イメージ名を変更しているとエラーが出て一発で消せない時があります。
[root@test ~]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hoge/centos latest 2064fc6b29af 8 weeks ago 214.5 MB fuga/centos latest 2064fc6b29af 8 weeks ago 214.5 MB [root@test ~]#
上記のイメージを削除する例です。
docker rmi `docker images -q`
で消そうとすると
Error response from daemon: Conflict, cannot delete image 2064fc6b29af because it is tagged in multiple repositories, use -f to force Error response from daemon: Conflict, cannot delete image 2064fc6b29af because it is tagged in multiple repositories, use -f to force Error: failed to remove images: [2064fc6b29af 2064fc6b29af]
こんなエラーが出る場合の対策です。
REPOSITORY
が違っていますがIMAGE ID
が同じです。
対策
docker rmi
する際にREPOSITORY
とTAG
を:(コロン)区切りで渡すと消すことが出来ます。
docker rmi `docker images | sed -ne '2,$p' -e 's/ */ /g' | awk '{print $1":"$2}'`
こうするとワンタッチで消せます。