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

推薦する

Linux のファイル システム タイプの表示方法の例

Linux でパーティションのファイル システム タイプを確認する方法。パーティションのファイル シ...

Centos7 への MySQL8 のインストールチュートリアル

MySQL 8 の新機能: MySQL をバージョン 5.x から 8.x に直接アップグレードする...

vue+echartsチャートの使用に関する問題記録

序文echarts は私が最もよく使用するチャート作成ツールであり、非常に完全なエコシステムとコンテ...

border-image を使用してテキストバブルの境界線を実装する方法のサンプルコード

開発中に、非常に単純なテキストバブル効果に遭遇しました。これは、おおよそ次のようになります。 うーん...

MySQLとSpringの自動コミットの詳細な説明

1 MySQLの自動コミット設定MySQL はデフォルトで自動的にコミットします。つまり、各 DML...

MySQL 5.6 ルートパスワード変更チュートリアル

1. MySQL 5.6をインストールした後、正常に有効化できないMySQL の圧縮バージョンは、解...

MySQL max_allowed_pa​​cket 設定

max_allowed_pa​​cket は、受け入れるパケットのサイズを設定するために使用される ...

HTML タグのメタ概要、HTML5 のヘッド メタ属性の概要

序文metaはhtml言語のhead領域にある補助タグです。おそらく、これらのコードは不要だと思うで...

Spring Cloud での Docker デプロイメントに jib を使用する詳細な手順

ジブの紹介Jib は Google が開発した、Java アプリケーションの Docker および ...

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

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

JavaScript で文字列を数値に変換する方法

目次1.parseInt(文字列、基数) 2. 数値() 3.parseFloat()主なメソッドは...

ろうそくを溶かす(水滴)サンプルコードを実現する純粋な CSS

成果を達成する実装のアイデアフィルターのコントラストとぼかしを利用して溶ける効果を実現します。親要素...

MySQLクエリキャッシュに関するヒント

目次序文QueryCache の概要クエリキャッシュ構成QueryCache の使用queryCac...

Centos7.3 に mysql5.7.18 をインストールするための詳細なチュートリアル

1 Linuxディストリビューションのバージョンを確認する[root@typecodes ~]# c...

ReactのsetStateがマクロタスクなのかマイクロタスクなのかについて詳しく話しましょう

目次序文面接官は適切な質問をしていますか? § React は setState をどのように制御し...