CMD vs ENTRYPOINT

# contenido Dockerfile de ejemplo
FROM ubuntu

CMD ["echo", "Hola mundo prros"]
# ejemplo creacion imagen
cd cmd-entrypoint/cmd
docker image build -t cmd .
# salida
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM ubuntu
 ---> 72300a873c2c
Step 2/2 : CMD ["echo", "Hola mundo prros"]
 ---> Running in 2a9fa2597d86
Removing intermediate container 2a9fa2597d86
 ---> ef8eafaa130d
Successfully built ef8eafaa130d
Successfully tagged cmd:latest

# ejemplo ejecución contenedor
docker container run cmd
#salida
Hola mundo prros
  • Reemplazo CMD al generar contendor

# contenido de directiva CMD puede reemplazarse al pasar
# argumentos de comandos al ejecutar nuevo contenedor

# ejemplo ejecución contenedor
docker container run cmd echo "Zero :v"
#salida
Zero :v

# revision contenedores, ver reemplazo
docker container ls -a
#salida
CONTAINER ID        IMAGE       COMMAND                  CREATED             STATUS                     
47f6ab9956d4        cmd         "echo 'Zero :v'"         52 seconds ago      Exited (0) 47 seconds ago
e459956550ae        cmd         "echo 'Hola mundo pr…"   25 minutes ago      Exited (0) 24 minutes ago

ENTRYPOINT:

funciona de manera similar a CMD con la diferencia que no puede ser reemplazado como CMD al ejecutar contenedor

# contenido Dockerfile de ejemplo
FROM ubuntu

ENTRYPOINT ["echo", "Hola mundo prros"]

# CMD ["echo", "Hola mundo prros"]

# ejemplo creacion imagen
cd cmd-entrypoint/entrypoint
docker image build -t cmd:v2 .
# salida
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM ubuntu
 ---> 72300a873c2c
Step 2/2 : ENTRYPOINT ["echo", "Hola mundo prros"]
 ---> Running in 8fda08168c0f
Removing intermediate container 8fda08168c0f
 ---> f5dc0f9148be
Successfully built f5dc0f9148be
Successfully tagged cmd:v2

# ejemplo ejecución contenedor
docker container run cmd:v2
#salida
Hola mundo prros
  • Tratar reemplazo CMD al generar contendor

# ejemplo ejecución contenedor
docker container run cmd:v2 echo "Zero :v"
#salida
Hola mundo prros Zero :v

# revision contenedores, ver si reemplazo
docker container ls -a
#salida
CONTAINER ID        IMAGE       COMMAND                  CREATED              STATUS
9cba2d8882e6        cmd:v2      "echo 'Hola mundo pr…"   28 seconds ago       Exited (0) 24 seconds ago
310a388318e2        cmd:v2      "echo 'Hola mundo pr…"   About a minute ago   Exited (0) About a minute ago

ENTRYPOINT+CMD:

ambas directivas en el Dockerfile pueden combinar su funcionamiento

  • Ejemplo uso ENTRYPOINT+CMD simple

    Dockerfile editado

# contenido Dockerfile de ejemplo
FROM ubuntu

ENTRYPOINT ["echo"]

CMD ["Hola mundo prros"]

# ejemplo creacion imagen
cd cmd-entrypoint/entrypoint+cmd
docker image build -t cmd:v3 .
# salida
Sending build context to Docker daemon  2.048kB
Step 1/3 : FROM ubuntu
 ---> 72300a873c2c
Step 2/3 : ENTRYPOINT ["echo"]
 ---> Running in 2e7b6341e11e
Removing intermediate container 2e7b6341e11e
 ---> ee025252176c
Step 3/3 : CMD ["Hola mundo prros"]
 ---> Running in d363b5106658
Removing intermediate container d363b5106658
 ---> 133d89781cae
Successfully built 133d89781cae
Successfully tagged cmd:v3

# ejemplo ejecución contenedor
docker container run cmd:v3
#salida
Hola mundo prros
  • Tratar reemplazo CMD de ENTRYPOINT al generar contendor

# ya no seria necesario indicar el comando a usar que ya quedo definido
# por defecto desde ENTRYPOINT

# ejemplo ejecución contenedor indicando argumento
docker container run cmd:v3 "Zero :v"
#salida
Zero :v

# revision contenedores, ver si reemplazo
docker container ls -a
#salida
CONTAINER ID        IMAGE       COMMAND                  CREATED              STATUS
21a5401fd608        cmd:v3      "echo 'Zero :v'"         About a minute ago   Exited (0) About a minute ago
9e8bc8520b0d        cmd:v3      "echo 'Hola mundo pr…"   4 minutes ago        Exited (0) 4 minutes ago

Última actualización

¿Te fue útil?