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

推薦する

fullpage.js フルスクリーンスクロールの具体的な使い方

1.fullpage.js ダウンロードアドレスhttps://github.com/alvarot...

jar パッケージを Docker コンテナに変換する方法

jar パッケージを Docker コンテナに変換する方法1.まずJavaイメージをダウンロードする...

MySQLデータベースをアンインストールするための完全な手順

MySQLデータベースを完全にアンインストールするプロセスは次のとおりです。 1. MySQLサービ...

MySQL 8.0.11 MacOS 10.13 のインストールと設定方法のグラフィックチュートリアル

MacにMySQLデータベースをインストールし、環境変数を設定する手順を参考までに記録します。具体的...

WeChatアプレットがフォーム検証を実装

WeChatアプレットフォームの検証、参考までに具体的な内容は次のとおりです。プラグインWxVali...

jQueryはドロップダウンメニューのスライド効果を実現します

Web ページを作成するときに、クールでスムーズなドロップダウン メニューが必要になることがあります...

PHP クラスにおける static と self の違いの簡単な分析

メソッドが定義されているクラスに応じて、現在のクラスへの静的参照を取得するには、self:: または...

docker compose サービスの起動順序を制御する方法

まとめDocker-compose は複数の Docker コンテナ サービスを簡単に組み合わせるこ...

Linux netfilter/iptables の知識ポイントの詳細な説明

ネットフィルターNetfilter は、パケット フィルタリング、転送、およびアドレス変換 NAT ...

Vueはカウンターのシンプルな生成を実装します

この記事では、Vueカウンターの簡単な実装コードを例として紹介します。具体的な内容は以下のとおりです...

VMware12 に CentOS8 をインストールする方法 (VM 仮想マシンに CentOS8 をインストールするチュートリアル)

数日前に CentOS8 がリリースされました。8 の最初のバージョンですが、今日は VM12 に ...

VMware Workstation Pro でサーバー仮想マシンを構築する (グラフィック チュートリアル)

私が使用している VMware Workstation Pro のバージョンは次のとおりです。 1....

Vue プロジェクトはファイルダウンロードの進行状況バー機能を実装します

日常業務でファイルをダウンロードする一般的な方法は 2 つあります。 1 つ目は、サーバーのファイル...

ページのスクロールバーを無効にするには、overflow: hiddenを使用します。

コードをコピーコードは次のとおりです。 html {オーバーフロー: 非表示; }体{オーバーフロー...

訪問者にあなたのウェブサイトを覚えてもらうための3つの便利なコード

訪問者があなたのウェブサイトを覚えておくのに役立つ3つの便利なコード。お気に入りに追加するためのヒン...