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クエリの冗長インデックスと未使用のインデックス操作

推薦する

HTML 基本要約推奨事項 (タイトル)

HTML: タイトル見出しは <h1> - <h6> などのタグによって定...

Docker ベースの nginx ファイル サーバーを構築する方法と手順

1. このマシンに新しい設定ファイルdocker_nginx.confを作成します。 サーバー{ 7...

MySQL の CPU 負荷が高い問題のトラブルシューティング

MySQL による CPU 負荷の上昇今日の午後、MySQL によってサーバーの負荷が高くなる問題を...

CentOS 6 または CentOS 7 でディスク領域をクリアする方法

以下は、CentOS 6 または CentOS 7 サーバーのディスク領域をクリアするための簡単なコ...

JS配列の次元削減のいくつかの方法の詳細な説明

2次元配列の次元削減配列インスタンスメソッド concat と ES6 スプレッド演算子を使用した次...

MySQL 外部キー制約とテーブル関係の概要

目次外部キーテーブルの関係を決定する方法テーブル関係を作成する方法1対多の関係 - 従業員テーブルと...

qt.qpa.plugin の問題を解決: Ubuntu 18.04 の Qt で Qt プラットフォーム プラグイン「xcb」をロードできませんでした

問題の説明Qt5.15.0 をインストールした後、テスト ケースを実行するとエラーが表示されます。 ...

Vueフォームで画像を処理する方法

質問: Vue にブログ投稿をアップロードするためのフォームがあり、タイトル、本文、説明、スニペット...

Rancher で Kubernetes 用の標準化された VMware イメージを構築する方法

Kubernetes を学習するときは、Kubernetes 環境で練習する必要があります。ただし、...

MySQLが基礎データ構造としてB+ツリーを使用する理由

MySQL の基盤となるデータ構造が B+ ツリーであることは誰もが知っていますが、ではなぜ赤黒ツリ...

Windows Server 2012 でファイル サーバーを構築するための詳細な手順

ファイル サーバーは、企業内で最も一般的に使用されるサーバーの一つであり、主にファイル共有を提供する...

HTMLページの読み込み速度を上げる方法

(1)HTTPリクエストを減らす。 (リソース ファイルをマージし、イメージ スプライトを使用します...

レスポンシブなカードホバー効果を実現するための HTML+CSS

目次成し遂げる:要約:言うことはあまりありませんが、まずは効果を見てみましょう。 カードホバー、レス...

Ubuntu で起動時に自動的に起動するシェル スクリプトを作成する (推奨)

スクリプトを書く目的は、さまざまなサービスを手動で起動しなくて済むようにすることです(怠惰のためでも...

CentOS7 構成 Alibaba Cloud yum ソースメソッドコード

Centos yumフォルダを開くコマンドcd /etc/yum.repos.d/を入力します。 w...