ENTRYPOINT và CMD đều định nghĩa cái gì chạy khi một container khởi động, nhưng chúng phục vụ các vai trò khác nhau và tương tác theo những cách cụ thể. Hiểu sự khác biệt (và hai dạng — exec vs shell) là quan trọng để viết các Dockerfile hành xử đúng.
CMD — lệnh mặc định (ghi đè được)
CMD ["node", "server.js"]
# → lệnh MẶC ĐỊNH khi container khởi động
# → nhưng nó bị THAY THẾ nếu bạn truyền một lệnh tại thời điểm run:
# docker run myapp echo hello → chạy "echo hello" THAY VÌ node server.js
cung cấp , vốn bị bởi bất kỳ lệnh nào được đưa ra trên .
