Docker はすべてのコンテナをバッチ起動して閉じます

Docker はすべてのコンテナをバッチ起動して閉じます

Dockerの場合

すべてのコンテナコマンドを開始する

docker を起動します $(docker ps -a | awk '{ print $1}' | tail -n +2)

Dockerの場合

すべてのコンテナコマンドを閉じる

docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)

補足: docker ツールボックスをベースにした、docker コンテナのバッチ起動と削除のシェル

コンテナを停止する

停止.sh
#!/bin/bash
コンテナID="8f78b7e6995b beeae59c6f41 5305c3db3670 bffc551a6b96 61f0fc8b1dc4 8e85a3b7bfe3 d15c4d2dc546 2a3c4eb14584 5e98077acc3a 13bac087b83d"
statusLived="ライブ"
statusdead="死亡"
notExistContainer="なし"
再試行回数=3
関数 GetContainerStatus(){
 コンテナが存在する場合=$(docker ps -a | grep -i $1 | wc -l ) 
 [ ${containerExist} -gt 0 ]の場合
 それから
 pid=$(docker stats --format "{{.PIDs}}" --no-stream $1 )
 [ "${pid}" != "0" の場合
  それから 
  エコー「${statusLived}」
 それ以外
  echo "${statusdead}"
 フィ
 それ以外
 echo "${notExistContainer}" 
 フィ
}
関数StopContainer(){
 ドッカー停止 $1
}
${containerIDs} のコンテナID
 する
 ((i=1;i<=${retryCount};i++)) の場合
 する
 ステータス=$(GetContainerStatus ${containerID})
 echo "コンテナ ${containerID} のステータスは ${status} です"
 [ "${status}" == ${statusdead} ] の場合
 それから
 echo "コンテナ ${containerID} はすでに停止しています"
 壊す
 フィ
 [ "${status}" == ${notExistContainer} ] の場合
 それから
 echo "コンテナ ${containerID} は存在しませんでした"
 壊す
 フィ
 [ "${status}" == ${statusLived} ] の場合
 それから
  echo "コンテナ ${containerID} は稼働中です。コンテナを停止してください"
  コンテナを停止 ${containerID}
  検証ステータス=$(GetContainerStatus ${containerID})
  [ "${verifyStatus}" == ${statusdead} ] の場合
  それから
  echo "コンテナ ${containerID} の停止に成功しました"
  壊す
  それ以外
  echo "${i} コンテナの停止を再試行します"
  コンテナを停止 ${containerID}
  フィ
 フィ
 終わり
終わり

注: コンテナIDはすでに構築済みのものです。ここでのDockerコンテナはnginxです。

stop.sh を d:/nginx の下に置きます。

処理は少し遅いので、しばらくお待ちください。

コンテナを正常に停止しています。

コンテナを起動する

#!/bin/bash
コンテナID = "8f78b7e6995b
 ビーアエ59c6f41
 5305c3db3670
 翻訳元
 61f0fc8b1dc4
 8e85a3b7bfe3
 d15c4d2dc546
 2a3c4eb14584
 5e98077acc3a
 13bac087b83d"
statusLived="ライブ"
statusdead="死亡"
notExistContainer="なし"
再試行回数=3
関数 GetContainerStatus(){
 コンテナが存在する場合=$(docker ps -a | grep -i $1 | wc -l ) 
 [ ${containerExist} -gt 0 ]の場合
 それから
 pid=$(docker stats --format "{{.PIDs}}" --no-stream $1 )
 [ "${pid}" != "0" の場合
  それから 
  エコー「${statusLived}」
 それ以外
  echo "${statusdead}"
 フィ
 それ以外
 echo "${notExistContainer}" 
 フィ
}
関数StartContainer(){
 docker 再起動 $1
}
${containerIDs} のコンテナID
 する
 ((i=1;i<=${再試行回数};i++)) の場合
 する
 ステータス=$(GetContainerStatus ${containerID})
 echo "コンテナ ${containerID} のステータスは ${status} です"
 [ "${status}" == ${statusLived} ] の場合
 それから
 echo "コンテナ ${containerID} はすでに実行中です"
 壊す
 フィ
 [ "${status}" == ${notExistContainer} ] の場合
 それから
 echo "コンテナ ${containerID} は存在しませんでした"
 壊す
 フィ
 [ "${status}" == ${statusdead} ] の場合
 それから
 echo "コンテナ ${containerID} が停止しました、コンテナを起動してください"
 コンテナの開始 ${containerID}
 検証ステータス=$(GetContainerStatus ${containerID})
 [ "${verifyStatus}" == ${statusLived} ] の場合
  それから
  echo "コンテナ ${containerID} の起動に成功しました"
  壊す
 それ以外
  echo "${i} コンテナの起動を再試行します"
  コンテナの開始 ${containerID}
 フィ
 フィ
 終わり
終わり

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Dockerがコンテナを起動するたびに、IPとホストが指定した操作が実行されます。
  • シェルスクリプトによるDockerコンテナの起動順序の制御の詳細な説明
  • Dockerは起動されていないコンテナの設定情報を変更します
  • Dockerコンテナ内で2つのプロセスを開始するときのDockerfile実装コード
  • Docker ファイルの保存パス、コンテナの起動コマンド操作の取得
  • Dockerコンテナが起動直後に終了する問題を解決する

<<:  TypeScript 環境を構築して VSCode にデプロイする詳細な手順

>>:  MySQLクエリの冗長インデックスと未使用のインデックス操作

推薦する

私のCSSアーキテクチャのコンセプト - それは人によって異なり、ベストなものはなく、適切なものだけがある

はじめに<br />私はフロントエンド分野でかなり長い間働いており、CSS分野でも長い間...

VMware15 の CentOS7 インストールの詳細なプロセスとよくある問題 (画像とテキスト)

1. インストールパッケージの準備VMware-player-15.0.4-12990004、非商...

MySQL 5.7 mysql コマンドラインクライアントの使用コマンドの詳細

MySQL 5.7コマンドを使用するMySQLコマンドラインクライアント1. パスワードを入力してく...

MySQL ビューの原理と基本操作例

この記事では、例を使用して、MySQL ビューの原理と基本操作を説明します。ご参考までに、詳細は以下...

MySQLのROUND関数の丸め演算における落とし穴の分析

この記事では、MySQL の ROUND 関数を使用した丸め操作の落とし穴を例を使って説明します。ご...

Vue における LocalStorage と SessionStorage の違いと使い方

目次LocalStorageとはSessionStorageとはLocalStorage と Ses...

MySQLのよくある間違い

NULL 値によると、MySQL の NULL 値は単にデータがないことを意味します。NULL 値は...

MySQL 5.x の文字化け問題の解決方法

MySQL はよく使われるオープンソースのデータベース ソフトウェアですが、初めてのユーザーにはあま...

MySQL の詳細な単一テーブルの追加、削除、変更、クエリの CRUD ステートメント

MySQL の追加、削除、変更、クエリステートメント1. 練習シートを作成するここでの練習表は3つの...

Linux でリモート サーバー ファイルの状態を表示する方法

以下のように表示されます。 test コマンドはファイルが存在するかどうかを判断します。 ssh u...

JavaScript でフォロー広告を実装するためのサンプルコード

フローティング広告は、ウェブサイト上で非常に一般的な広告形式です。フローティング広告は、ユーザーの閲...

将来的に人気のあるウェブサイトのナビゲーションの方向

<br />今は情報爆発の時代であるだけでなく、サービス爆発の時代でもあります。それはす...

jsはreduceメソッドを使用してコードをよりエレガントにします

序文実際のプロジェクトでは、最も一般的な処理は計算とループロジックである可能性があります。配列でre...

MySQL コマンドラインモードアクセス操作 MySQL データベース操作

使用環境cmd モードで、mysql --version と入力します (インストールされている M...

Vueを使い始める際に習得する必要がある知識について簡単に説明します

最も人気のあるフロントエンド フレームワークの 1 つとして、Vue は多くのフロントエンド開発エン...