最近、Docker がコンテナの起動時に特定のプロセスを直接実行できるようにする方法を調べていたところ、コンテナの起動時に Dockerfile でコンテナ実行コマンドを指定できることが分かりました。 CMD を指定しますが、各 Dockerfile には 1 つの CMD 命令しか含めることができません。複数の CMD 命令を指定した場合、最後の命令のみが実行されます。 そこで方法を考えて、スクリプトを書いて、スクリプト内で複数のプロセスを開始し、Dockerfile でスクリプトを実行しました。 最終的に、この方法は実行可能であることが証明されました。しかし、実験中に問題が発生しました。コンテナは起動後すぐに停止しました。 情報を参照した後: Docker コンテナは、一度に 1 つのプロセスのみを管理できます。このプロセスが終了すると、コンテナも終了します。ただし、これはコンテナが 1 つのプロセスのみを実行できるという意味ではありません (他のプロセスはバックグラウンドで実行できます)。ただし、コンテナが終了しないようにするには、フォアグラウンドでプロセスが実行されている必要があります。 解決: スクリプト内の最後のプロセスはフォアグラウンド モードで実行する必要があります。つまり、プロセスの最後に & (& はバックグラウンド実行を意味します) を追加しないでください。そうしないと、コンテナーが終了します。 補足知識: docker コンテナで gdbserver を使用する際の問題と解決策 dockerコンテナでgdbserverを使用するときに問題が発生します
その理由は、Docker はデフォルトで PTRACE 機能を無効にしており、コンテナの実行時に有効にする必要があるためです。
起動後すぐにdockerコンテナが終了する問題を解決する上記の記事は、編集者が皆さんと共有する内容のすべてです。 皆さんの参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL フラッシュリストとダーティページフラッシュメカニズム
>>: JavaScript のドキュメント オブジェクト モデル (DOM)
1. 要件Vue.js フレームワークを使用してフロントエンド プロジェクトを開発する場合、サーバ...
【序文】最近、ITOO の試験システムのストレステストを行いたいので、自分のコンピュータに Lin...
目次マスタースレーブレプリケーションメカニズム非同期レプリケーション準同期レプリケーションマスタース...
導入悠宇希の原文です。 vite は Vue CLI に似ています。vite も、基本的なプロジェク...
Remレイアウトの適応Vant のスタイルでは、デフォルトで px を単位として使用します。rem ...
最初の方法: skip-grant-tables: 非常に便利なmysql起動パラメータ非常に便利な...
目次Dockerコンテナのソースコードを使用してhttpdをデプロイし、ストレージボリュームを使用し...
目次序文基礎を築くプロトタイプコンストラクタのプロパティ__プロト__プロトタイプチェーン改善する要...
Zabbix による SQL Server の監視を見てみましょう。まずfreetdsをダウンロード...
概要データベースは通常、複数のトランザクションを同時に実行します。複数のトランザクションが、同じデー...
導入フロントエンドプロジェクトの開発プロセスでは、el-table によって表示される結果列がコンポ...
目次開発中に発生した問題解決具体的な実装実績まとめバーチャルリストは、スクロールコンテナ要素の表示領...
垂直方向では、セルの配置を上、中央、下に設定できます。基本的な構文<TD VLIGN=&quo...
目次レンダリングインストールコードの実装カスタムスタイル要約する効率的に要件を満たし、車輪の再発明を...
場合によっては、MySQL が公式に提供しているテスト ライブラリに基づいてテスト データを作成し、...