🚬
【docker】child imagesのせいでimageが消せなくてキレそうなあなたへ
結論
docker rmiでイメージを削除しようとすると、こんなエラーが出るときがある。
Error response from daemon: conflict: unable to delete <イメージのID> (cannot be forced) - image has dependent child images
そんなときはこれを使うのだ
rmiFromChild() {
ids=$(docker images -q)
childId=$(
for i in ${ids}; do
docker history $i | grep -q $1 && echo $i
done | sort -u
)
docker rmi ${childId}
}
child image関係のもの全部削除したいせっかちさんはこちら(こちら未検証、多分いける)
rmiAllFromChild() {
ids=$(docker images -q)
for id in ${ids}; do
childId=$(
for i in ${ids}; do
docker history $i | grep -q $id && echo $i
done | sort -u
)
docker rmi ${childId}
done
}
使い方
rmiFromChild イメージのID
もしくは
rmiAllFromChild
これだけで消えます。
Discussion