コンテナの自動起動 Docker は、コンテナが終了したとき、または Docker が再起動されたときにコンテナが自動的に起動するように制御できる再起動ポリシー メカニズムを提供します。この再起動ポリシーにより、関連するコンテナが正しい順序で起動されることが保証されます。このアクションはプロセス監視 (systemd など) を通じて実行することもできますが、Docker では、コンテナを「自己起動」するためにプロセス監視を使用しないことを推奨しています。 Docker の再起動ポリシーと dockerd コマンドの --live-restore 起動フラグには違いがあります。--live-restore フラグは、Docker がアップグレードされてもコンテナーが引き続き実行されることを保証しますが、ネットワークとユーザー端末の入力は中断されます。 では、再起動ポリシーとは具体的に何でしょうか?実際の状況を見てみましょう。 再起動ポリシーの使用 再起動ポリシーは、docker run を使用してコンテナを起動するときに --restart フラグで指定します。このフラグには複数の値があり、次の表に示すように、値によって動作が異なります。
たとえば、次のコマンドは Redis コンテナを起動します。Redis コンテナが停止するか、Docker が再起動されると、Redis コンテナも再起動されます。 $ docker run -dit --restart 停止していない限り、redis 再起動ポリシーの詳細 再起動ポリシーを使用する場合は、次の詳細に注意する必要があります。 (1)再起動ポリシーはコンテナが正常に起動した後にのみ有効になります。ここでの「正常に起動」とは、コンテナが少なくとも 10 秒間起動しており、Docker によって監視されていることを意味します。これは、正常に起動されていないコンテナが再起動の無限ループに陥るのを防ぐためです。 (2)コンテナを手動で停止した場合(上記の明示的な停止との違いは何か)、Dockerデーモンを再起動するかコンテナを手動で再起動しない限り、コンテナに設定された再起動ポリシーは無視されます。これにより、新たな悪循環を回避できます。 (3)再起動ポリシーはコンテナにのみ使用できます。Swarmサービスの場合、再起動ポリシーの設定は無効です。 プロセス監視 上記の再起動ポリシーがニーズを満たせない場合は、upstart、systemd、supervisor などのプロセス監視管理ソリューションを使用することもできます。 このソリューションでは、プロセス監視サービスはコンテナ内で実行されます。プロセスが実行中かどうかを監視し、実行されていない場合はプロセスを開始できます。 Docker はこれらすべてが起こっていることをまったく認識していません。 Docker は、プロセス監視にこの方法を推奨していません。理由は簡単です。この方法は、システム プラットフォーム、さらには Linux ディストリビューションに関連しているからです。 オリジナル: https://docs.docker.com/engine/admin/start-containers-automatically/#use-a-process-manager Dockerコンテナは起動時に自動的に起動します docker run でコンテナを起動するときは、--restart パラメータを使用して以下を設定します。 # docker run -m 512m --memory-swap 1G -it -p 58080:8080 --restart=alway --name bvrfis --volumes-from ログデータ mytomcat:4.0 /root/run.sh --restart 特定のパラメータ値の詳細:
また、on-failure 戦略を使用するときに、Docker がコンテナの再起動を試行する最大回数を指定することもできます。デフォルトでは、Docker はコンテナを永久に再起動しようとします。 # sudo docker run --restart=on-failure:10 redis 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MAC での MYSQL5.7.17 接続失敗の問題と解決策
次のように、Windows/MacOS からログインした Linux の SSH ターミナルで簡単に...
コードをコピーコードは次のとおりです。 <meta name="viewport&q...
MIME タイプとは何ですか? 1. まず、ブラウザがコンテンツを処理する方法を理解する必要がありま...
この記事では、接続エラー ECONNREFUSED を例に、Node.js がエラーを処理するプロセ...
目次リアクティブ機能使用法: toRef 関数 (理解するだけ)使用法: ref関数レスポンシブデー...
目次質問伸ばす問題を解決する要約する質問プロジェクトの要件に従って、以下の州地図で個々の都市を(異な...
目次1. はじめに2. スケジューラの基本概念2.1. 実行キュー (rq) 2.2 スケジューリン...
MySQL 5.7.20のインストールと設定方法のグラフィックチュートリアルをあなたと共有します1...
この記事の例では、検証コードのランダム生成を実現するためのJSの具体的なコードを参考までに共有してい...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
idea 開発ツールを使用してコードをデバッグする場合、Java Web プロジェクトで、Web コ...
前面に書かれた環境: MySQL 5.7+、MySQL データベースの文字エンコードは utf8、テ...
1.1 はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメ...
方法:実際のプロジェクトを例に挙げてみましょう。 .lk-ツールバー{ .el-入力{ 幅: 169...
メモ: とにかく体験してみましょう。記録: NO.209この例の環境:仮想マシン: vmwareオペ...