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

推薦する

vue+elementui+vuex+sessionStorage を使用して履歴タグ メニューを実装するためのサンプル コード

一般的には、左側にメニューがあった後、ページの上部に履歴タブ メニューを追加する必要があります。他の...

MySQLの読み書き分離により挿入後にデータが選択されなくなる問題を解決

MySQLは独立した書き込み分離を設定します。コードに次のものを書くと問題が発生する可能性があります...

TCP 3 回目のハンドシェイク データ転送プロセス図

RFC793 ドキュメントの SYN フラグを持つプロセス パケットはデータを伝送できません。つま...

OpenLayersはポイントフィーチャーレイヤーの集約表示方法を実現します

目次1. はじめに2. ポイントフィーチャーレイヤーの集約3. 重合の特殊処理4. 重合の特殊処理 ...

MYSQLストアドプロシージャ、つまり一般的な論理知識のポイントの要約

MySQL ストアド プロシージャ1. ストアドプロシージャ構文(フォーマット)を作成する 区切り文...

Maxwell を使用して MySQL データをリアルタイムで同期する方法

目次マクスウェルについてMaxwellの設定と使用1. Maxwellインストールパッケージをダウン...

MySQL トランザクション分離はどのように実現されますか?

目次同時シナリオ書き込む読む読む読み取り-書き込みと書き込み-読み取りMySQL のロック行レベルロ...

HTML シンボルからエンティティへのアルゴリズムのチャレンジ

チャレンジ:文字列内の文字 &、<、>、" (二重引用符)、および &...

MySQLを安全にシャットダウンする方法

MySQL サーバーをシャットダウンする場合、シャットダウン方法に応じてさまざまな問題が発生する可能...

分散監視システムZabbixはSNMPとJMXチャネルを使用してデータを収集します

前回の記事では、Zabbix のパッシブ、アクティブ、Web 監視に関するトピックについて学習しまし...

HTMLでカメラを読み込む方法

効果図: 全体的な効果: ビデオ読み込み中: 写真:ステップ1: HTML要素を作成するまず、HTM...

Dockerアーキテクチャ入門

Docker には 3 つの基本概念が含まれています。イメージ: Docker イメージはルート フ...

Linux の操作とメンテナンスの基本システムディスク管理チュートリアル

1. ディスクパーティション: 2. fdiskパーティションディスクが2 TB未満の場合はfdis...

SSH経由でローカルLinux仮想マシンに接続するプロセスを記録する

実験環境:物理マシン Windows 10 x64物理NIC情報IPv4 アドレス: 192.168...

vuexサードパーティパッケージを使用してデータの永続性を実装する方法

目的: vuex で管理されている状態データを同時にローカルに保存できるようにします。独自のストレー...