とても嬉しいです。この問題に遭遇したとき、私はDockerコンテナのプロセス原理について話さなければなりません。基本的に、Dockerについて学んだ人は、Dockerのいくつかの分離方法を知っており、プロセスも分離されています。 質問 1. 実行中に Docker コンテナがクラッシュするのはなぜですか? デフォルトでは、docker コンテナはコンテナ内の最初のプロセス、つまり pid=1 のプログラムを、docker コンテナが実行中かどうかの基準として使用します。docker コンテナの pid がハングすると、docker コンテナは直接終了します。 2.docker run のとき、command をコンテナの内部コマンドとして使用します。nginx を使用すると、nginx プログラムがバックグラウンドで実行されます。このとき、nginx は pid 1 のプログラムではなく、bash が実行されます。この bash は nginx コマンドを実行した後にハングするため、コンテナも終了します。同じ理由が当てはまります。pm2 start 後、bash の pid は 1 です。このとき、bash は実行後に終了するため、コンテナも終了します。 以下では、例を挙げて、なぜそうするのかを説明します。 ! タッチファイル echo "このスクリプトのPID: $$" echo "このスクリプトのPPID: $PPID" echo "このスクリプトのUID: $UID" #nginx -g 'デーモンをオフ;' この時点で、コンテナを起動してこのshファイルを実行します。 odtoy:~ zhaojunlike$ `docker-machine env default` を評価します godtoy:~ zhaojunlike$ cd ワークスペース/ godtoy:ワークスペース zhaojunlike$ ls docker nodejs php pid_get godtoy:ワークスペース zhaojunlike$ vim pid_get godtoy:ワークスペース zhaojunlike$ docker run -v `pwd`/pid_get:/pid_get:ro --rm --workdir=/ nginx bash /pid_get このスクリプトの PID: 1 このスクリプトの PPID: 0 このスクリプトの UID: 0 godtoy:ワークスペース zhaojunlike$ コンテナが pid_get を実行した後、コンテナは自動的に終了します。このとき、現在の bash 実行の pid は 1 として出力されます。 したがって、コンテナがクラッシュしないようにするには、非デーモン実行が必須です。もちろん、コンテナ内で実行することもできます。 godtoy:ワークスペース zhaojunlike$ docker run -it nginx bash ルート@a8baa5fe77f0:/# root@a8baa5fe77f0:/# godtoy:WorkSpace zhaojunlike$ -it パラメータを使用してコンテナ内のパイプラインに接続し、コンテナ内で nginx コマンドを使用します。最後に、 要約する docker で node を使用する必要がある場合、pm2 などのツールをインストールする必要はありません。node を直接実行するだけです。コンテナがクラッシュするのではないかと心配な場合は、 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Reactはルーティングを使用してログインインターフェースにリダイレクトします
>>: MySQLのスイッチングデータ保存ディレクトリの実装方法
困難SVG グラフィックの 2 つのマスクの作成まず、コード左側のピンク色のボックスの内容ですこれに...
等高レイアウト同じ親コンテナー内の同じ高さの子要素のレイアウトを指します。等高レイアウトの実装の観点...
<br /> 英語原文: http://desktoppub.about.com/od/...
目次概要フロントエンド知識システムフロントエンドの3つの要素プレゼンテーション層 (CSS)動作レイ...
この記事では、例を使用して、MySQL ストアド プロシージャでの if ステートメントの使用方法を...
HTML フォームは、名前、電子メール アドレス、場所、年齢などのユーザー情報を収集するためによく使...
簡単な説明これは CSS3 のクールな 3D キューブのプリロード効果です。この特殊効果は、シンプル...
みなさんこんにちは。今日は、純粋な CSS を使用して Google マテリアル デザインのテキスト...
1. ショートカットCtrl + Shift + Pを使用してコンソールを呼び出します 2、「スニペ...
目次ケースシナリオ問題を解決するまとめケースシナリオ本日、オンラインで問題が発見されました。監視範囲...
目次概要1. 範囲エラー2. 参照エラー3. 構文エラー4. タイプエラー5. URIエラー6. 評...
プロジェクト(nodejs)では、一度に複数のデータをデータベースに挿入する必要があります。データベ...
前回の記事で、mysqldump バックアップ ファイルに記録されるタイムスタンプ データは UTC...
サーバーサイドレンダリング (SSR) を使用する理由検索エンジンのクローラーが完全にレンダリングさ...
HTTP/1.1 プロトコルで指定されている HTTP リクエスト メソッドには、OPTIONS、...