Dockerでimageを削除しようとした際に発生する「Error response from daemon: conflict: unable to delete」エラーの対処法です。
現象
# dockerのイメージリスト
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost:5000/pocketcode/centos 7 b5b4d78bc90c 2 months ago 203MB
localhost:50000/centos 7 b5b4d78bc90c 2 months ago 203MB
# IMAGE ID[b5b4d78bc90c]の削除を試みるとエラーが発生
$ docker rmi b5b4d78bc90c
Error response from daemon: conflict: unable to delete b5b4d78bc90c (cannot be forced) - image has dependent child images
原因
削除対象のIMAGE IDが複数存在するために発生します。そのため削除するにはIMAGE IDを指定するのではなく、docker rmi REPOSITRY:TAGとする必要があります。
対処法2つ
1. REPOSITRY:TAG指定で削除
# dockerのイメージリスト
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost:5000/pocketcode/centos 7 b5b4d78bc90c 2 months ago 203MB
localhost:50000/centos 7 b5b4d78bc90c 2 months ago 203MB
$ REPOSITRY:TAG指定で削除する
$ docker rmi localhost:50000/centos:7
Untagged: localhost:50000/centos:7
Untagged: localhost:50000/centos:7/centos@sha256:c2f1d5a9c0a81350fa0ad7e1eee99e379d75fe53823d44b5469eb2eb6092c941
# 削除後のdockerのイメージリスト
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost:5000/pocketcode/centos 7 b5b4d78bc90c 2 months ago 203MB
これで削除完了です。
2. 一括でimageを削除
# dockerのイメージリスト
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost:5000/pocketcode/centos 7 b5b4d78bc90c 2 months ago 203MB
localhost:50000/centos 7 b5b4d78bc90c 2 months ago 203MB
# IMAGE IDに紐づくimageをすべて削除
# 例:docker images | grep <IMAGE ID>| awk '{print $1 ":" $2}' | xargs docker rmi
$ docker images | grep b5b4d78bc90c | awk '{print $1 ":" $2}' | xargs docker rmi
# 削除後のdockerのイメージリスト
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
以上で「Error response from daemon: conflict: unable to delete」エラーの対処法は完了です。
30代のWEB系企業エンジニアです。毎回同じようなことを検索してしまうので、自分の備忘録的に書いています。サイトのデザインはQiita(https://qiita.com)さんに寄せています。