ENTRYPOINT と CMD はどちらもコンテナ起動時に実行される内容を定義しますが、異なる役割を果たし、特定の方法で相互作用します。その違い(および2つの形式— exec形式 vs shell形式)を理解することは、正しく動作するDockerfileを書くために重要です。
CMD — デフォルトコマンド(上書き可能)
CMD ["node", "server.js"]
# → the DEFAULT command when the container starts
# → but it's REPLACED if you pass a command at run time:
# docker run myapp echo hello → runs "echo hello" INSTEAD of node server.js
は を提供し、 で指定されたコマンドによって されます。
