[解決済み] 指定した名前のDockerコンテナが存在しない場合のみ、Bashコマンドを実行するにはどうすればよいですか?
2022-05-13 18:08:44
質問
Jenkins マシンで、指定した名前の docker コンテナを、それがまだ存在しない場合のみ作成したいと思います (シェルスクリプトで)。コンテナを作成するコマンドを関係なく実行し、失敗があった場合は無視しようと思いましたが、これは私のjenkinsジョブが失敗する原因になります。
したがって、私はbashを使用してdockerコンテナが存在するかどうかを確認する方法を知りたいです。
どのように解決するのですか?
実行中のコンテナが存在しないかどうかを確認するには、grep で
<name>
をgrepして、後でこのように起動させることができます。
[ ! "$(docker ps -a | grep <name>)" ] && docker run -d --name <name> <image>
より良い
を利用する。 https://docs.docker.com/engine/reference/commandline/ps/ を利用し、終了したコンテナがブロックしているかどうかを確認することで、コンテナを実行する前にまずそれを削除することができます。
if [ ! "$(docker ps -q -f name=<name>)" ]; then
if [ "$(docker ps -aq -f status=exited -f name=<name>)" ]; then
# cleanup
docker rm <name>
fi
# run your container
docker run -d --name <name> my-docker-image
fi
関連
-
[解決済み】エラー "入力デバイスはTTYではありません"
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] Bashで標準出力と標準エラーの両方をファイルにリダイレクトして追記する方法
-
[解決済み] Dockerイメージの削除方法について教えてください。
-
[解決済み] 既に存在するDockerコンテナ上でコマンドを実行するにはどうすればよいですか?
-
[解決済み] 指定した名前のDockerコンテナが存在しない場合のみ、Bashコマンドを実行するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 指定した名前のDockerコンテナが存在しない場合のみ、Bashコマンドを実行するにはどうすればよいですか?
-
[解決済み] bash で "set -o nounset" を使用したときに変数が設定されているかどうかをテストする。
-
[解決済み] bashでalt + numericを押すと(arg [numeric])と出ますが、これは何でしょう?
-
[解決済み] Bashはどのように異なるディレクトリコンテキストでコマンドを実行できますか?
-
[解決済み] シェルスクリプトからウェブブラウザを起動する方法は?
-
[解決済み] bashで端末の最終行を削除して置換するには?
-
[解決済み] Docker: 実行中のDockerコンテナの停止と削除
-
[解決済み] Bashでディレクトリではなく、ファイルだけをリストアップする方法は?
-
[解決済み] homebrew パッケージがインストールされているかどうかを検出する
-
[解決済み] MSYSでフォルダを閲覧する