ENTRYPOINT మరియు CMD రెండూ కంటైనర్ ప్రారంభమైనప్పుడు ఏమి నడుస్తుందో నిర్వచిస్తాయి, అయితే అవి విభిన్న పాత్రలను పూర్తి చేస్తాయి మరియు నిర్దిష్ట విధాలలో సంకర్షణ చెందుతాయి. తేడా (మరియు రెండు రూపాలు — exec vs shell) అర్థం చేసుకోవడం సరిగ్గా ప్రవర్తించే Dockerfiles రాయడానికి ముఖ్యమైనది.
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
ను అందిస్తుంది, ఇది పై ఇచ్చిన ఏదైనా కమాండ్ ద్వారా చేయబడుతుంది.
