指定した名前のDockerコンテナが存在すればdocker stopコマンドを実行する

sudo docker ps -a --filter "name=app" | awk 'BEGIN{i=0}{i++;}END{if(i>=2)system("sudo docker stop app")}'
  • --fileter "name=app"docker ps -a の結果の中からコンテナ名が app であるものだけを表示するオプション。
  • sudo docker ps -a --filter "name=app"で出力された行数を awk でカウントし、2行以上であれば app コンテナが存在するものとして sudo docker stop app を実行する。

全てのDockerコンテナを削除する

sudo docker ps -aq | xargs sudo docker rm
  • コンテナは停止している必要がある。
  • -aオプションは全てのコンテナを表示する。
  • -qオプションはコンテナIDのみを表示する。

Capistrano のタスク間で共有できる変数

set :hoge, capture("pwd")

変数 hogecapture("pwd") の実行結果が格納される。この hoge は別のタスクからでも fetch(:hoge) と書くとアクセスすることができる。