Docker の複数コンテナを一括停止/削除するスクリプト

以前に Docker で複数コンテナを一括停止/削除するというメモを書きました。 大した中身ではありませんが、これをスクリプト化すると以下のようになると思います。

1
2
3
4
5
6
7
8
9
#!/bin/sh

COUNT=`docker ps -a -q | wc -l`
if [ $COUNT != 0 ]; then
  echo 'Stopping...'
  docker stop $(docker ps -a -q)
  echo 'Removing...'
  docker rm $(docker ps -a -q)
fi

スクリプト名は任意ですが、シェルで補完しやすいような名前が好ましいと思われます。 今回は all-containers-stop として /usr/local/bin 配下へアップロードしておきました。 ヒアドキュメントでファイルを作成する場合は以下のように実行します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
cat << 'EOF' > /usr/local/bin/all-containers-stop
#!/bin/sh

COUNT=`docker ps -a -q | wc -l`
if [ $COUNT != 0 ]; then
  echo 'Stopping...'
  docker stop $(docker ps -a -q)
  echo 'Removing...'
  docker rm $(docker ps -a -q)
fi
EOF
chmod 755 /usr/local/bin/all-containers-stop