この記事では、Dockerコンテナの起動コマンドを表示する方法について詳しく説明しています。 Docker Inspectの実行と停止容器の使用、DockerfileのCMDとEntryPointの検査、DockerログA
docker inspect
具体的には、json出力内の
とaConfig.Cmd
を使用して開始した場合、ENTRYPOINT
はCMD
命令を反映します。 Config.Cmd
のみが指定されている場合、CMD
はENTRYPOINT
コマンドを表示します。 これは、Config.Cmd
オリジナルENTRYPOINT
コマンドを示していることに注意してください。起動後にコンテナ内で行われた変更はここには反映されません。 停止したコンテナの場合、情報はまだ
(停止されたコンテナを含むすべてのコンテナをリストする)から取得したコンテナIDまたは名前を使用する必要がある場合があります。docker inspect
docker ps -a
もう1つの直接的でないアプローチでは、画像の構築に使用されるDockerFileを調べることが含まれます。 dockerfile内の
命令は、コンテナの起動コマンドを決定します。このメソッドは、特定のインスタンスを起動するために使用される正確なコマンドではなく、意図したコマンドのみを提供します。
docker logs
:主にコンテナログを表示するために、docker logs <container_id>
は、アプリケーション自体が起動時にそのような情報を記録した場合、最初のコマンドに関する手がかりを明らかにする可能性があります。これは、アプリケーションのログの動作に依存するため、間接的で信頼できません。ENTRYPOINT
およびdocker-compose up
実行中のDockerコンテナのエントリポイントコマンドを見つけるにはどうすればよいですか?docker-compose.yml
command
フィールドを探します。 このフィールドには、ENTRYPOINT
コマンドを表す配列が含まれています。 dockerfileでENTRYPOINT
が指定されていない場合、このフィールドは空またはdocker inspect <container_id>
になります。 Config.Entrypoint
は通常最初に実行され、次にENTRYPOINT
(存在する場合)はENTRYPOINT
。 null
dockerfileのENTRYPOINT
命令またはコンテナが作成されたときに提供されたコマンドで指定された元のコマンドを示します。コンテナのプロセスツリーが開始後に行われた変更は、元の呼び出しを直接明らかにする方法でDockerによって追跡されません。 コンテナ自体内のログまたはプロセスリストを介して情報を間接的に推測できますが、これにより、CMD
コマンドに渡された正確なコマンドライン引数が得られません。 ENTRYPOINT
コマンドは、最初のコマンドに最も近い近似値を与えます。
以上がDocker Startupコマンドを読む方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。