Curso Docker - 12. Qué es el Dockerfile

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 en FROM, incluso si ya está descargada.
  • --no-cache: por defecto, Docker cachea las acciones realizadas por si ejecutamos docker build varias veces seguidas. Se comprueba el Dockerfile y si no han cambiado las instrucciones, se utiliza la caché. Con esta opción forzamos que ejecute todo de nuevo.

El proceso es:

  1. Generamos un Dockerfile
  2. Ejecutamos docker build para generar una imagen
  3. 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