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 ブロックレベルタグとインラインタグの違い

推薦する

MySQLのタイムゾーンを表示および設定する方法

1. データベースのタイムゾーンを確認する '%time_zone' のような変数を...

HTML ページ出力で従うべきいくつかの原則の要約

1. DOCTYPE は必須です。ブラウザは宣言した DOCTYPE に基づいてページのレンダリング...

MySQL 5.6.23 のインストールと設定環境変数のチュートリアル

この記事では、MySQL 5.6.23のインストールと設定のチュートリアルを参考までに紹介します。具...

MacにMySQLをインストールするときに初期パスワードを忘れた場合の対処方法

パスワードを忘れると困ります。Mac に MySQL をインストールするための初期パスワードを忘れて...

MySQLデータベースでの値の追加、変更、削除、クリアの例

3. MySQLデータ管理最初の方法:お勧めできません。複雑そうです -- 学生テーブルの grad...

Docker を使用してスタンドアロン Pulsar とクラスター化された Redis をデプロイする方法 (開発アーティファクト)

目次1. はじめに: 2. ドッカー: 1 カスタムネットワーク2 展開を開始する3 ネットワークを...

163 メールボックスログインボックスインタラクティブデザインの改善体験と共有

LOFTER のコンテストで、ログイン ボックスを再設計できると言及されているのを見ました。過去 2...

JavaScript 手ぶれ補正のケーススタディ

原理手ぶれ補正の原理は、イベントをトリガーすることはできますが、イベントがトリガーされてから n 秒...

nginxカスタム変数と組み込み定義済み変数の使用

概要Nginx では変数を使用して設定を簡素化し、設定の柔軟性を向上させることができます。すべての変...

MySQL でレプリケーション フィルターを動的に変更する方法

MySQLはレプリケーションフィルターを動的に変更します今日遭遇した問題についてお話しします。今日は...

win10 での mysql5.7.21 の詳細なインストール手順

この記事では、MySQL 5.7.21のインストールとインストール中に発生した問題を参考までに紹介し...

CSS3 アドバンス LESS で星空アニメーションを実装するサンプルコード

この記事では、星空アニメーションを実現するための高度な CSS3 LESS のサンプルコードを次のよ...

Mybatis マッパー動的プロキシの原理の分析

序文動的プロキシの原理を説明する前に、まず、mybatis を統合した後の dao 層の 2 つの実...

CentOS8 Linux 8.0.1905 のインストール手順(図解)

現在、CentOS の最新バージョンは CentOS 8 です。次に、CentOS Linux 8....

Docker可視化管理ツールであるDocker UIの使用

1. DockerUIの紹介DockerUI は Docker API をベースとしており、Dock...