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