En resumen,
puede haber más de una ejecución, y solo puede haber un cmd y un punto de entrada (generalmente utilizado para ejecutar aplicaciones)
El comando docker puede sobrescribir el cmd, el punto de entrada no puede
Este comando se ejecutará cuando se inicie el contenedor y la ejecución de Docker no especifique otros comandos.
-
Si la ejecución de Docker especifica otros comandos, se ignorará el comando predeterminado especificado por CMD.
-
Si hay varias instrucciones CMD en el Dockerfile, solo la última CMD es válida.
El formato Exec de ENTRYPOINT se utiliza para configurar el comando que se ejecutará y sus parámetros, y se pueden proporcionar parámetros adicionales a través de CMD.
Los parámetros en ENTRYPOINT siempre se utilizarán, y los parámetros adicionales de CMD se pueden reemplazar dinámicamente cuando se inicia el contenedor.
Por ejemplo, el siguiente fragmento de Dockerfile:
PUNTO DE ENTRADA ["/ bin / echo", "Hola"]
CMD ["mundo"]
Cuando el contenedor se inicia a través de docker run -it [image], la salida es:
Hola Mundo
Y si es iniciado por docker run -it [image] CloudMan, el resultado es:
Hola cloudman