docker イメージが存在していなかったらプル コンテナが存在していなかったら起動

自分用メモ
テスト用にdockerを使っているので自動したい
毎回pullしても良いのだがゴミが溜まるし時間がかかる
pullやstop、rm操作の前に事前確認したい

との事で以下で解決

起動していたらそのまま使う:

if [[ "$(docker images -q mysql:5.7)" == "" ]]; then
  docker pull mysql:5.7
fi
if [ ! "$(docker ps -q -f name=<name>)" ]; then
    if [ "$(docker ps -aq -f name=<name>)" ]; then
        # cleanup
        docker rm <name>
    fi
    # run your container
    docker run -d --name <name> my-docker-image
fi

毎回同じ状態で始めたい、起動していても殺して作り直す:

if [[ "$(docker images -q mysql:5.7)" == "" ]]; then
  docker pull mysql:5.7
fi

if [ "$(docker ps -aq -f name=<name>)" ]; then
    if [ "$(docker ps -q -f name=<name>)" ]; then
        docker stop <name>
    fi
    docker rm <name>
fi
docker run -d --name <name> my-docker-image