Imágenes
Las imagenes Docker son plantillas a partir de las cuáles pueden crearse contenedores. Las imágenes están formadas por diferentes "capas", incluyendo una aplicación, los binarios y las librerias necesarias.
Gestión de imágenes¶
Docker posee un repositorio público de imágenes "prefabricadas", creadas por empresas o particulares. Las mimas pueden encontrarse en Docker Hub.
Las instrucciones que siguen aplican a la gestión de imágenes Docker a través de la terminal de comandos.
Buscar imágenes¶
Podemos buscar imágenes usando el siguiente comando:
Por ejemplo:
La acción nos devolverá las imágenes disponibles que coinciden con el término de búsqueda "python"Descargar una imagen¶
Podemos descargar fácilmente una imagen desde el repositorio a nuestro equipo:
Por ejemplo:
El comando de ejemplo descargará la última imagen de python diponible.Otro ejemplo:
En este caso, se descargará a nuestro equipo la imagen de Debian, versión 9.13
Listar imagenes descargadas¶
Para visualizar las imágenes que ya hemos descargado a nuestro equipo, ejecutamos:
Donde-a
y -q
son opcionales:
-a
Las imágenes están formadas por capas. La opción nos muestra todas las imágenes, inclusive aquellas intermedias.-q
Nos muestra sólo el ID de las imágenes.
Si queremos listar sólo las imágenes "intermedias" o dangling ejecutamos:
Borrar imágenes¶
Para borrar una imagen descargada, simplemente debemos conocer el ID de la imagen y ejecutar el siguiente comando:
Si en cambio queremos borrar todas las imágenes que hemos descargado, ejecutamos.
O bien:
También:
Borrar imágenes en uso
Sólo se podrán borrar aquellas imágenes que no estén siendo utilizadas por ningún contenedor.
Imágenes personalizadas¶
Nó sólo podemos emplear las imágenes descargadas de Docker Hub "así como están" sino que podemos personalizarlas según nuestras necesidades.
El archivo Dockerfile¶
Es un archivo de texto plano que contiene ciertas instrucciones mediante las cuáles crearemos nuestra imagen personalizada de Docker. Su sintaxis básica es la siguiente:
Algunas instrucciones de un Dockerfile¶
A continuación, listamos las instrucciones de Dockerfile más utilizadas
FROM¶
Establece la imagen de base con la que se construirá la imagen personalizada.MAINTAINER¶
Nos permite indicar el autor del DockerfileRUN¶
Ejecuta comandos cuando se está construyendo una imagen personalizada.CMD¶
Pasa valores por defecto en la imagen para que se ejecuten cuando se lance un contenedor.COPY¶
Copia archivos desdeADD¶
Copia archivos desdeENV¶
Inicializa variables de entorno (sistema), con el formato "clave=valor".EXPOSE¶
Indica los puertos TCP/IP por los que se pueden acceder a los servicios del contenedor.Ejemplos de Dockerfile¶
Ejemplo de contenido de un Dockerfile que creará una imagen partiendo de Centos e instalará un servidor web:
Ejemplo de contenido de un Dockerfile (un poco más complejo) que creará una imagen partiendo de Ubuntu e instalará un servidor web:
FROM ubuntu
ENV TIMEZONE=America/Argentina/Buenos_Aires
RUN ln -snf /usr/share/zoneinfo/$TIMEZONE /etc/localtime \
&& echo $TIMEZONE > /etc/timezone \
&& apt-get update \
&& apt-get upgrade -y \
&& apt-get install apache2 -y \
&& apt-get clean
EXPOSE 22 80
CMD ["apache2ctl", "-D", "FOREGROUND"]
Generando imagen a partir del Dockerfile¶
Para generar una imagen a partir de un archivo Dockerfile, debemos situarnos donde éste y ejecutar el siguiente comando:
Por ejemplo:En caso que tengamos más de un Dockerfile (no pueden llamarse de la misma manera) podemos invocar el nombre del archivo Dockerfile con la opción -f
:
Por ejemplo: