Dockerを使っていると、
不要になったイメージを削除しようとして次のようなエラーが出ることがあります。
Error response from daemon: conflict: unable to delete
何度 docker rmi を実行しても削除できず、
「なぜ消せないのか分からない」という状態になりがちです。
この記事では、Dockerでイメージが削除できないときの主な原因と、順番に試すべき対処法を、Mac環境向けに解説します。
※ 本記事は Mac + Docker Desktop を前提に説明します。
目次
この記事でわかること
- Dockerイメージが削除できない理由
- 使用中・依存関係の考え方
- 安全に削除する手順
- 強制削除の注意点
Dockerイメージが削除できない主な理由
Dockerイメージが削除できない場合、
ほとんどは 「どこかで使われている」状態です。
Dockerでは、
- コンテナ
- 他のイメージ
- キャッシュ
との関係が切れていないと削除できません。
原因① 使用中のコンテナが存在する
最も多い原因です。
エラー例
conflict: unable to delete image
確認方法
docker ps -a
削除したいイメージを使っているコンテナがないか確認します。
対処法
対象コンテナを停止・削除します。
docker stop コンテナID
docker rm コンテナID
その後、再度イメージを削除します。
docker rmi イメージID
原因② 停止中のコンテナが残っている
docker ps では表示されなくても、
停止中のコンテナが残っていることがあります。
確認方法
docker ps -a
対処法
不要なコンテナを削除します。
docker rm コンテナID
原因③ 他のイメージが依存している
別のイメージが、
削除対象イメージをベースとして使っている場合も削除できません。
確認の考え方
- Dockerfileで
FROMに使われていないか - 派生イメージが残っていないか
対処法
- 依存しているイメージを先に削除
- または不要な派生イメージを整理
原因④ Docker Desktopのキャッシュが残っている
キャッシュや未使用リソースが原因で、
削除できないように見える場合もあります。
対処法
不要なリソースをまとめて削除します。
docker system prune
※ 実行前に削除内容を必ず確認してください。
強制削除(最終手段)
どうしても削除できない場合は、
強制削除が可能です。
docker rmi -f イメージID
注意点
- 使用中イメージを無理に消すと環境が壊れる可能性あり
- 依存関係を理解してから実行する
👉 基本は通常削除 → 強制削除は最後です。
よくある勘違い
- イメージ単体ならいつでも消せる
→ ❌ コンテナが残っていると消せない - docker ps に出てなければ問題ない
→ ❌ 停止中コンテナが残ることがある
それでも削除できない場合のチェックリスト
- 使用中・停止中コンテナは残っていないか
- 派生イメージが存在していないか
- キャッシュが溜まっていないか
- 本当に削除してよいイメージか
まとめ
Dockerでイメージが削除できない場合、
- コンテナが残っている
- 依存関係が切れていない
- キャッシュが影響している
のいずれかが原因です。
順番に確認すれば、ほとんどのケースは安全に削除できます。
コメントを残す