先日、golang で docker サブコマンドを実装する というメモを書きました。 実用性はありませんが、習作として「docker コンテナを全停止・削除する docker サブコマンド」を実装してみました。 golang で実装しています。
ワンライナーで実行する場合
そもそも「全コンテナの停止」などはワンライナーで実行出来ます。 ですので、わざわざこのバイナリを利用する必要はあまり無く、個人的な学習として作成しました。
目的 | コマンド |
---|---|
全コンテナを停止する | docker stop $(docker ps -q) |
全コンテナを削除する | docker rm $(docker ps -aq) |
全イメージを削除する | docker rmi $(docker images -aq) |
インストール
docker-compose v2 と同様、docker サブコマンドとして利用出来ます。 システムワイドに利用する場合は以下のようにインストールします。
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
全コンテナを停止・削除する
全コンテナを停止・削除するには以下のように実行します。
# 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
) オプションを指定して実行します。
# 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
コメント