Dockerコンテナシェルスクリプトの実行ステータスを監視する方法

Dockerコンテナシェルスクリプトの実行ステータスを監視する方法

シナリオ

会社のプロジェクトはDockerでデプロイされています。原因不明ですが、コンテナが時々停止します。コンテナの実行状態を監視するスクリプトを作成する必要があります。コンテナが停止した場合は、コンテナを再起動します。

シェルスクリプト

#!/bin/bash
# コンテナ名を渡す containerName=$1
currTime=`日付 +"%Y-%m-%d %H:%M:%S"`
# プロセスが存在するかどうかを確認します =`docker inspect --format '{{.State.Running}}' ${containerName}`
[ "${exist}" != "true" ] の場合;
 docker を起動 ${コンテナ名}
 # 記録 echo "${currTime} restart docker container, container name: ${containerName}" >> /mnt/xvde1/ms_ctynyd/scripts/wbwf_monitor.log
 
フィ

スケジュールされたタスクの crontab

Linuxのスケジュールされたタスクを編集するにはcrontab -eを使用します

# docker 8081 コンテナをモニター*/1 * * * * sh /mnt/xvde1/ms_ctynyd/scripts/wbwf_monitor.sh server_wbwf_wbwf-app_1
# docker 7081 コンテナをモニター*/1 * * * * sh /mnt/xvde1/ms_ctynyd/scripts/wbwf_monitor.sh server_hb_hb-test-app_1

補足: シェルスクリプトはサービスが実行中かどうかを判定します

サービスが有効かどうかを判断するシェルスクリプト

スクリプトは次のとおりです。

#!/bin/bash
#サービスがインストールされているかどうかを確認するには、サービスの状態を確認します。read -p "テストするサービスを入力してください:" SERVICE
netstat -anp | grep $SERVICE &> /dev/null
[ $? -eq 0 ]の場合
それから
  echo "$SERVICE サービスが開始されました!"
それ以外
  rpm -q $SERVICE &> /dev/null
 
  [ $? -eq 0 ]の場合
  それから
 echo "$SERVICE サービスがインストールされ、起動しています..."
    サービス $SERVICE 開始
  それ以外
 echo "サービスはインストールされていません!"
 フィ
フィ

結果は次のとおりです。

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

以下もご興味があるかもしれません:
  • Dockerはコンテナとホスト間でのシェルコマンドのシームレスな呼び出しを可能にします
  • DockerでLinuxシェルコマンドを実行する方法
  • シェルスクリプトによるDockerコンテナの起動順序の制御の詳細な説明
  • ホスト上のDockerコンテナ内でシェルまたはプログラムを実行する
  • シェルスクリプトを使用して Docker サービスを一括で開始および停止する
  • シェルスクリプトは、Docker の半自動コンパイル、パッケージ化、およびリリースアプリケーション操作を構築します。

<<:  Web 開発チュートリアル クロスドメイン ソリューションの詳細な説明

>>:  HTML ブロックレベルタグとインラインタグの違い

推薦する

フレックスボックスレイアウトの最終行の左揃えの実装アイデア

フレックスレイアウトを使用すると、9つの正方形のグリッドであれば、図に示すように均等に分割できます。...

MySQL データベース インデックスの面接の質問 (基本的なプログラマー スキル)

目次導入インデックスの原則1. データページ2. ページディレクトリ3. インデックス原則分析要約す...

フロントエンド開発における一般的なテクニックのまとめ

1. 記事タイトルリストの右側に日付を表​​示する方法:コードをコピーコードは次のとおりです。 &l...

VueはBaidu Mapsを使用して都市の位置特定を実現

この記事では、参考までに、Baidu Mapsを使用して都市の位置特定を実現するVueの具体的なコー...

Vue+Openlayerはグラフィックスのドラッグと回転変形効果を実現します

目次序文関連資料成果を達成する実装手順序文Openlayer には独自の拡張プラグイン ol-ext...

jsを使ってシンプルなディスククロックを実現する

この記事では、参考までに、シンプルなディスククロックを実装するためのjsの具体的なコードを紹介します...

CSS3はアニメーション効果を実現するためにvar()とcalc()関数を使用する。

ナレッジポイントをプレビューします。アニメーションフレーム背景グラデーションvar() と calc...

Linux における「!」の知られざる使用法のまとめ

序文実際、Linux では、控えめな「!」が驚くほど多くの用途で使用されています。この記事では、「!...

Docker を使用してイメージをローカルにパッケージ化してデプロイする方法

初めてDockerを使用してイメージをローカルにパッケージ化してデプロイするまず、私のラップトップシ...

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

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

Docker コンテナ ソース コードのデプロイ httpd ストレージ ボリュームを使用して Web サイトをデプロイする (推奨)

目次Dockerコンテナのソースコードを使用してhttpdをデプロイし、ストレージボリュームを使用し...

Vue はカードフリップカルーセル表示を実装します

Vueカードのフリップカルーセル表示、フリップ時にデータを切り替えながら、参考までに、具体的な内容は...

MySQL 4G メモリ サーバー構成の最適化

会社のウェブサイトのアクセス数が増えてくると(1日10万PV以上)、当然MySQLがボトルネックにな...

30分でReact Hooksを包括的に理解できます

目次概要1. 使用状態1.1 3つの概念に関する質問1.2 例1.3 注記2. リデューサーを使用す...

スクラッチ宝くじの例を実現する JavaScript キャンバス

この記事では、スクラッチ効果を実現するためのJavaScriptキャンバスの具体的なコードを参考まで...