¿Qué es el archivo Dockerfile?
Para empezar a trabajar la configuración de nuestra instancia de Docker, vamos a crear un nuevo directorio llamado ejemplo1.
mkdir ejemplo1
cd ejemplo01
Ahora creamos nuestro archivo Dockerfile en el cual vamos a especificar la información acerca de nuestra instancia. La idea es que creemos nuestra propia imagen utilizando el template de Ubuntu 16.04.
FROM ubuntu:16.04
MAINTAINER [email protected]
RUN apt-get update
RUN apt-get install -y python3
En el ejemplo hemos especificado 3 instrucciones.
- Utilizar la imagen de Ubuntu para la version 16.04.
- Definir al maintainer (quien mantiene la imagen).
- Una ves instalado Ubuntu realizar las actualizaciones de los paquetes.
- Realizar la instalación de python3 y responder “si” por default a todas las preguntas de forma que no se detenga la instalación.
Si vemos todas las instrucciones como FROM, MAINTAINER y FROM se han escrito con mayúsculas, esto no es un requerimiento como tal sino mas bien una convención al escribir nuestro archivo Dockerfile.
Ahora vamos a construir nuestro contenedor utilizado nuestro Dockerfile, para ello basta ejecutar el comando build de Docker dentro del mismo directorio en donde se encuentra el Dockerfile.
$ docker build .
Lo primero que vamos a ver es a Docker realizando la descarga de la imagen utilizada como template ubuntu:16.04, este proceso puede tomar algunos minutos pero solo la primera vez, ya que posteriormente cuando construyamos una instancia de Docker utilizando esta imagen, esta ya estará disponible dentro de nuestro sistema.
Durante el provisionamiento, Docker nos irá mostrando información acerca del progreso de las instrucciones del Dockerfile:
...
Step 1/4 : FROM ubuntu:16.04
...
Step 2/4 : MAINTAINER [email protected]
...
Step 3/4 : RUN apt-get update
...
Step 4/4 : RUN apt-get install -y python3
...
Successfully built e1bd48f8da85
Para ver las imágenes que han sido descargadas podemos hacer uso del comando…
$ docker images
La salida luciría similar a la siguiente…
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> e1bd48f8da85 11 minutes ago 186MB
ubuntu 16.04 c6a43cd4801e 5 days ago 123MB
hello-world latest fce289e99eb9 11 months ago 1.84kB
La imagen que acabamos de crear es la que aparece como .