Skip to content

全コンテナを停止・削除する docker サブコマンド「docker purge」

先日、golang で docker サブコマンドを実装する というメモを書きました。 実用性はありませんが、習作として「docker コンテナを全停止・削除する docker サブコマンド」を実装してみました。 golang で実装しています。

ワンライナーで実行する場合

そもそも「全コンテナの停止」などはワンライナーで実行出来ます。 ですので、わざわざこのバイナリを利用する必要はあまり無く、個人的な学習として作成しました。

目的 コマンド
全コンテナを停止する docker stop $(docker ps -q)
全コンテナを削除する docker rm $(docker ps -aq)
全イメージを削除する docker rmi $(docker images -aq)

インストール

docker-compose v2 と同様、docker サブコマンドとして利用出来ます。 システムワイドに利用する場合は以下のようにインストールします。

1
2
3
4
5
mkdir -p /usr/local/lib/docker/cli-plugins/
curl -SL \
  https://github.com/sig9org/docker-purge/releases/download/v0.0.1/docker-purge_v0.0.1_linux_amd64 \
  -o /usr/local/lib/docker/cli-plugins/docker-purge
chmod +x /usr/local/lib/docker/cli-plugins/docker-purge

全コンテナを停止・削除する

全コンテナを停止・削除するには以下のように実行します。

1
2
3
4
# docker purge
CONTAINER ID  IMAGE       STATUS         NAMES               PURGED
0bf662d0106c  sig9/nginx  Up 42 seconds  dreamy_babbage      Done
90d18e5f5dad  alpine      Up 52 seconds  flamboyant_hellman  Done

全コンテナを停止・削除し、全イメージを削除する

全コンテナを停止・削除し、更に全イメージを削除するには以下のように --images (または -i) オプションを指定して実行します。

1
2
3
4
5
6
7
8
# docker purge --images
CONTAINER ID  IMAGE       STATUS        NAMES            PURGED
9d00c8e0666d  sig9/nginx  Up 7 seconds  zealous_hawking  Done
f70bd26035ae  alpine      Up 9 seconds  sleepy_bell      Done

REPOSITORY  TAG     IMAGE ID      SIZE  PURGED
sig9/nginx  latest  eaa3878ec1ef  33MB  Done
alpine      latest  c059bfaa849c  5MB   Done