CMD
と をいつ使用すればよいのかわかりませんRUN
。たとえば、bash/shell コマンド (つまりls -la
) を実行するには、常に を使用しますCMD
か、それとも を使用する状況がありますかRUN
? これら 2 つの類似したディレクティブに関するベスト プラクティスを理解しようとしていますDockerfile
。
ベストアンサー1
走るイメージビルドステップでは、コマンド実行後のコンテナの状態がRUN
コンテナイメージにコミットされます。Dockerfile には、RUN
イメージをビルドするために、複数のステップが重なり合う場合があります。
CMDFは、ビルドされたイメージを起動したときにコンテナがデフォルトで実行するコマンドです。Dockerfile は、最後にCMD
定義された のみを使用します。 は、CMD
でコンテナを起動するときに上書きできますdocker run $image $other_command
。
エントリーポイントは とも密接に関連しており、コンテナがイメージから起動されるときに が解釈されるCMD
方法を変更できます。CMD