Documentos de Académico
Documentos de Profesional
Documentos de Cultura
¿Qué es Dockerfile?
Es documento de texto que contiene todos los comandos necesarios para crear una imagen.
Dentro del archivo Dockerfile vamos a poner todos los comandos que necesitamos para crear una
imagen, después solo hay que ejecutar ese Dockerfile para crear la imagen.
La primera línea pertenece al FROM nos va a decir desde donde va a crear la imagen.
El comando RUN, es lo que va a ejecutar.
Dockerfile lo que no deja utilizar es nada interactivo por eso en la última línea se utiliza el -y para
que cuando la ejecute y pida la confirmación automáticamente diga que yes. Tiene que estar
implícito en el documento Dockerfile, no soporta nada interactivo.
Para crear la imagen, es necesario salir a la terminal y ejecutar #docker build -t nombreimagen
path/del/Dockerfile
Si queremos saber toda la historia de una imagen tenemos el comanda history. Ejecutamos
#docker history nombreimagen y saldrá todos los comandos, tamaños, tiempo de creación de la
imagen etc.
Este comando crear un archivo “version” en el directorio /etc/ y le agrega una linea con el
contenido “1.0”, y además continua instalándose git y la utilidad iputils-ping.
Ahora para crear esta nueva imagen se ejecuta #docker build -t nombreimagen:v2 path/Dockerfile
En este caso se le ha añadido el tag v2 para definir la versión, sino ponemos tag deja el latest como
nombre.
CMD
El comando CMD es una directiva que permite indicar por defecto del contenedor. Lo que hace es
indicar un valor o un comando por defecto, lo hace ejecutando una shell. Lo que hace es
ejecutar /bin/sh llamando al bash.
Ejecutamos el Dockerfile #docker build -t nombreimagen:v3 path/Dockerfile
Ejecuta todos los comandos del Dockerfile definidos y en el último lugar ejecuta el CMD con el
mensaje. Si ejecutamos el contenedor nos dará el mensaje de bienvenida.
Otro ejemplo de CMD es usando los corchetes, esto permite ejecutar el mensaje anterior dentro
del contenedor en forma exec. Esto sirve porque a veces tenemos servidores que no tienen shell,
servidores en background.
Ejecutamos el Dockerfile.
Ahí vemos que se ejecuta todo igual como anteriormente, y ejecuta el CMD en el quinto paso. A
simple vista parece que sea igual, pero hay algunas diferencias. Si hacemos un #docker history
nombreimagen vemos la historia de la imagen y vemos como no llama a la shell simplemente
ejecuta el mensaje de bienvenida.
Editamos el Dockerfile
Hacemos un history a la imagen y vemos que CMD lo que ha hecho ha sido llamar un bash desde
una shell.
ENTRYPOINT
Este comando básicamente hace lo mismo que CMD pero con alguna diferencia. El comando
ENTRYPOINT ejecuta un comando cuando arrancamos el contenedor Docker.
El comando CMD permite ejecutar un parámetro cuando vamos a crear un contenedor.
El comando ENTRYPOINT ejecuta el comando dentro de la directiva del Dockerfile y no permite
pasar ningún parámetro.
Montando la imagen con CMD y con el parámetro df -h.
Editamos el Dockerfile
Como se puede observar en la imagen anterior al ejecutar el contenedor nos deja en al ruta de la
carpeta /data y al hacer el ls se puede ver como ha creado el archivo anterior “archivo.txt”.