ENTRYPOINT और CMD दोनों परिभाषित करते हैं कि container शुरू होने पर क्या चलता है, लेकिन वे अलग-अलग roles निभाते हैं और specific तरीकों से interact करते हैं। अंतर (और दो forms — exec vs shell) को समझना ऐसे Dockerfiles लिखने के लिए महत्वपूर्ण है जो सही ढंग से व्यवहार करें।
CMD — default command (overridable)
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
प्रदान करता है, जो पर दिए गए किसी भी command से हो जाता है।
