今日は、Docker ヘルスチェック メカニズムに関する前回の記事に引き続き、不健全なコンテナを再起動する方法について説明します。さらに、一部の読者から、いくつかのパラメータがよくわからないという報告があったので、この記事ではそれらについてさらに詳しく説明します。 Docker はバージョン 1.12 以降で HEALTHCHECK 命令を提供します。サービスの状態が正常かどうかを判断するためのコマンドラインを設定することで、サービスの状態をより正確に判断することができます。 起動後の HEALTHCHECK コンテナの初期ステータスは「開始中」です。命令チェックが成功すると、ステータスが正常になります。連続した障害回数が指定回数を超えると、異常状態に変わります。 HealthCheck の仕組みを見てみましょう。 HEALTHCHECK パラメータ オプション: --interval: ヘルスチェック間隔、デフォルトは30秒 --timeout: ヘルスチェックがこの設定時間を超えると失敗とみなされます。デフォルト設定は30秒です --retries: ヘルス チェックが連続してこの回数以上失敗すると、ステータスはデフォルトで 3 回、異常に変更されます。 --start-period: 開始時間、デフォルトは 0 秒 HEALTHCHECK は Dockerfile または docker-compose.yml 経由で設定できます。Dockerfileの例Dockerfileでは、HEALTHCHECK命令の形式は
<command> は、シェル コマンドまたは exec 形式にすることができます (他の Dockerfile 命令と同じ、ENTRYPOINT を参照)。 Dockerfile には HEALTHCHECK 命令が 1 つだけ存在できます。同時に複数の HEALTHCHECK 命令がある場合、最後の命令のみが有効になります。 <command> の戻り値はコンテナのステータスを表します。 0: 成功、コンテナは正常です 1: 失敗。失敗が指定された回数を超えると、コンテナは正常ではありません。 2: 予約済み、この値は使用しないでください コンテナ サービスが Web サービスであると仮定すると、これを使用してサービスが正常に実行されているかどうかを確認できます。たとえば、5 秒以内にリクエストに応答できるかどうかを 30 秒ごとに確認します。curl http://localhost:3000 Docker-compose の例docker-compose.yml のヘルスチェックは次のとおりです。 ここで、test は文字列またはリストである必要があります。リストの場合、最初の項目は NONE または CMD-SHELL である必要があります。文字列の場合はCMD-SHELLと同等です。 健康状態を確認する ヘルスチェックコマンドを設定したら、コンテナを起動してコンテナの状態を確認します。初期ステータスは「health:starting」であることがわかります。 30 秒後に docker ps を再度実行すると、コンテナのステータスが正常になることがわかります。 連続した障害の数が指定された数を超えると、ステータスは不健全になります。 重要なステップ: 不健全なコンテナを再起動する上記の手順では、コンテナの正常性状態のみをチェックし、正常でないコンテナに対しては何も行いません。 docker-autoheal を使用して、異常なコンテナを再起動できます。まず、AutoHeal の動作メカニズムを見てみましょう。 Autoheal は docker を使用して直接実行することも、docker-compose で記述することもできます。 docker コマンドを使用します: docker-compose コマンドを使用します。 次に、docker-compose up -d autoheal を実行して起動します。 起動後、docker ps を使用して、異常なコンテナが再起動されたかどうかを確認できます。自動修復ログをチェックして、起動記録があるかどうかを確認することもできます。 最後に、不健康な状態をシミュレートする方法を紹介します。通常の状況では正常ですが、コマンドを変更することで不健全な状態をシミュレートできます。たとえば、MySQL サービスをシミュレートするには、次のコマンドを使用できます。 通常はポート 3306 をリッスンしますが、接続してチェックするには 3307 を使用しますが、常に不健全な状態になります。この時点で、自動修復ログを通じて MySQL コンテナの再起動を確認できます。 このメカニズムにより、疑似的な停止が発生した場合に Docker を自動的に再起動できます。このチェックと自動再起動のメカニズムは、データベースまたは Tomcat サービスに非常に役立ちます。ご使用中にご不明な点がございましたら、メッセージをお送りください。 |
<<: ネットワークの課題: クラウドからデータセンターまでの監視
>>: あまり知られていないが強力な Docker コマンド 9 つ
2020年、特別な年。 2020 年を一文でまとめるとしたら、どのように表現しますか?嵐が来る前に、...
マルチクラウド モデルは業界で認知度が高まっており、企業は複数のクラウド プロバイダーからさまざまな...
今日は、1万人規模の記者会見がどのように企画され、記者会見後にいかに迅速に製品化されるかを見ていきま...
前の章では、インタラクション デザインの理解について説明しました。この章では、主にインタラクション ...
次のような問題によく遭遇します: 1. ポータルサイトを運営し、その商品を販売して利益を得る2. 仲...
Kafka は LinkedIn が立ち上げた高スループットの分散メッセージング システムです。簡単...
検索エンジンのランキングはウェブマスターにとって致命的であり、特にSEO仲間にとってはご飯茶碗に等し...
近年のインターネットの急速な発展は、私たちの生活様式を変え、多くの企業のビジネスモデルを変え、多くの...
中国国際放送の「ニュース夕刊ラッシュアワー」の報道によると、今年のメーデー連休前に鉄道部門は重要な発...
ブラック、ホワイト、グレーの SEO リンク構築戦略のいずれを使用していても、リンク構築者は善意で短...
hostdare.com のアジア最適化 VPS は特別プロモーションを実施しており、初月は 10%...
私のフレンドリーリンク欄に北京の SEO があります。このブログといえば、私の 2 番目のフレンドリ...
クラウドは一般的にグローバルなインターネットまたはネットワークを指しますが、コンピューティングはリモ...
多くの人は、一定期間内に何らかのデータを生成する必要があるため、新しいサイトを最適化します。含まれる...
ウェブサイトの SEO ランキングを行う際、301 リダイレクトの問題に遭遇します。多くの人は、30...