Mi Primer Dockerfile
Todo lo que hemos hecho hasta ahora fue escribir en la línea de comandos, lo que está bien para aprender. Sin embargo, especialmente hoy en día, ya no es posible vivir sin automatizar las cosas -- si tú, al igual que nosotros, adoras automatizar todo lo que sea posible, te gustará mucho este tema.
El dockerfile no es más que un archivo donde determinas todos los detalles de tu contenedor, como, por ejemplo, la imagen que vas a utilizar, aplicaciones que necesitan ser instaladas, comandos a ser ejecutados, los volúmenes que serán montados, etc., etc., etc.!
Es un makefile para la creación de contenedores, y en él pasas todas las instrucciones para la creación de tu contenedor.
¿Vamos a ver cómo funciona esto en la práctica?
Primera cosa: vamos a crear un directorio donde dejaremos nuestro archivo dockerfile, solo para mantenerlo organizado. :D
Después solo necesitas crear el dockerfile según el siguiente ejemplo:
# mkdir /root/primeiro_dockerfile
# cd /root/primeiro_dockerfile
# vim Dockerfile
Vamos a agregar las instrucciones que queremos para esta imagen de contenedor que vamos a crear:
FROM debian
RUN /bin/echo "HELLO DOCKER"
Solo esto por ahora. Guarda y sal de vim.
Ahora vamos a ejecutar el comando "docker build" para hacer la creación de esta imagen de contenedor utilizando el dockerfile creado.
root@linuxtips:~/primeiro_dockerfile# docker build -t tosko:1.0 .
Sending build context to Docker daemon 2.048 kB
Step 1/2 : FROM debian
latest: Pulling from library/debian
fdd5d7827f33: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:e7d38b3517548a1c71e41bffe9c8ae6d6d29546ce46bf62159837aad072c90aa
Status: Downloaded newer image for debian:latest
---> f50f9524513f
Step 2/2 : RUN /bin/echo "HELLO DOCKER"
---> Running in df60a0644bed
HELLO DOCKER
---> fd3af97a8940
Removing intermediate container df60a0644bed
Successfully built fd3af97a8940
Successfully tagged tosko:1.0
root@linuxtips:~/primeiro_dockerfile#
Observa que usamos el directorio actual, representado por el carácter ".", para indicar la ruta de mi archivo dockerfile, pero no necesitas necesariamente estar en el mismo directorio, basta pasar la ruta del directorio donde se encuentra el archivo.
Recuerda que es la ruta del directorio y no del archivo.