概要
Docker Desktop for Mac などのクライアントツールで、なぜか GUI に表示されているコンテナの削除ボタンを押しても削除できないことがある。
エラー内容
Deletion failed
chdir /Users/ユーザ名/対象のディレクトリパス/: no such file or directory
Docker プロセスを全て表示してみる
docker ps
でプロセスを確認。…してみても、何も表示されない。
そんな時は、-a
オプションをつけて Docker のプロセスを全て覗いてみよう。
# プロセスすべて確認
docker ps -a
# 結果
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f2ec9862617b xxxxx/xxxxx:latest "sh -c ' /opt/bin/mi…" 3 months ago Exited (0) 3 months ago xxxxx-xxxxx
96e9065c2fd6 xxxxx-dev "/bin/sh -ecx 'ruby …" 5 months ago Exited (137) 3 months ago xxxxx-app-1
7d37807b9ed3 redis:latest "docker-entrypoint.s…" 5 months ago Exited (0) 3 months ago xxxxx-redis
何やら動いてました。
不要なプロセスを消す
docker rm
を使って消すのも良いが、
docker rm コンテナID1 コンテナID2 ...
Docker でクリティカルに使用してるコンテナ等がない場合、使用していないリソースを全て一括削除するのも楽なのでアリ。
docker system prune
👉 停止コンテナ、タグ無しイメージ、未使用ボリューム、未使用ネットワークなどを一括削除する
未使用リソースを個別に消す方法
docker system prune
ではなく個別に消す場合。
以下、すべて -f
オプションで強制実行もできる。
# 停止コンテナ一括削除
docker container prune
# 未使用イメージ一括削除
docker image prune
# 未使用ボリューム一括削除
docker volume prune
# 未使用ネットワーク一括削除
docker network prune