AD

¿Ya dominas lo básico? Un curso estructurado de Docker es la vía rápida para dar el salto.

Ver cursos de Docker en Udemy

Enlace de afiliado. No te cuesta nada extra.

🐳Lecciones de Docker
Lección 31 / 45

Fijar la orden de arranque con CMD

En esta lección indicarás qué se ejecuta cuando arranca el contenedor.

CMD ["node", "server.js"] define la orden por defecto. Solo tiene efecto una vez, la última si hay varias.

Se escribe preferiblemente en esa forma de lista, y no como texto suelto. La diferencia no es cosmética: la forma de texto arranca el proceso dentro de un intérprete de órdenes, que pasa a ser el proceso número 1 y no reenvía las señales de terminación. El resultado es que docker stop tarda siempre diez segundos y acaba matando la aplicación.

La distinción con ENTRYPOINT es la otra fuente de confusión. Lo que se pasa al ejecutar docker run imagen algo sustituye a CMD pero se añade a ENTRYPOINT. El patrón habitual es poner el programa en ENTRYPOINT y sus argumentos por defecto en CMD, de modo que quien lo use pueda cambiar los argumentos sin cambiar el programa.

Recuerda además lo que se vio antes: el contenedor vive mientras viva este proceso. Una orden que termina enseguida deja el contenedor parado al instante, y no es un fallo de Docker.

Docker
Pruébalo (escríbelo en la terminal simulada)
docker build -t myapp .

🧑‍💻 Puedes escribir este comando en la terminal simulada de Docker para probarlo tú mismo (esta página no incluye terminal interactiva).

Espacio publicitario (banner)
Espacio publicitario (en el artículo)