ENTRYPOINT و CMD كلاهما يحدد ما يتم تشغيله عند بدء الحاوية، لكنهما يلعبان أدوارًا مختلفة ويتفاعلان بطرق محددة. فهم الفرق (والشكلان — exec مقابل 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
يوفر ، والذي يتم بواسطة أي أمر مُعطى على .
