Curso Docker - 12. Qué es el Dockerfile
El Dockerfile es una herramienta que nos ofrece la posibilidad de crear una imagen Docker a medida. Contiene una serie de instrucciones dentro de un fichero que harán que podamos crear imágenes Docker rápidamente.
Dicho de otra manera, Dockerfile es un documento de texto que contiene las órdenes a las que un usuario puede llamar desde la línea de comandos para crear una imagen. Si hacemos un apt install php
, ese mismo comando podemos ejecutarlo desde Dockerfile.
Para poder utilizar Dockerfile, vamos a crear un nuevo directorio que contenta el fichero Dockerfile
. Tras esto, construiremos la imagen utilizando el comando docker build
.
La sintaxis del comando es la siguiente:
docker build [OPTIONS] PATH | URL | -
Las 3 opciones que más se suelen utilizar son:
-t
o--tag
: sirve para crear una imagen con el nombre y tag especificados.--pull
: esta opción sirve para forzar la descarga de la imagen especificada enFROM
, incluso si ya está descargada.--no-cache
: por defecto, Docker cachea las acciones realizadas por si ejecutamosdocker build
varias veces seguidas. Se comprueba elDockerfile
y si no han cambiado las instrucciones, se utiliza la caché. Con esta opción forzamos que ejecute todo de nuevo.
El proceso es:
- Generamos un
Dockerfile
- Ejecutamos
docker build
para generar una imagen - Ejecutamos
docker run
para correr un contenedor basado en esa imagen
Ejercicio práctico
Vamos a crear una nueva imagen en la que estén instalados algunos programas por defecto: vim y apache.
mkdir geekytheory
cd geekytheory
vim Dockerfile
El contenido de Dockerfile
es:
FROM ubuntu:latest
Ahora vamos a generar la imagen:
docker build -t "geekytheory:dockerfile-test" .
Y si ahora vemos nuestras imágenes Docker:
~ docker images
A continuación, vamos a crear un contenedor a partir de esta imagen:
docker run --name dockerfile-container -it geekytheory:dockerfile-test bash