ENTRYPOINT y CMD ambos definen qué se ejecuta cuando un contenedor inicia, pero sirven roles diferentes e interactúan de formas específicas. Entender la diferencia (y las dos formas — exec vs shell) es importante para escribir Dockerfiles que se comporten correctamente.
Por qué es importante
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
proporciona el , que es por cualquier comando dado en .
