Las imagenes Docker son plantillas (que incluyen una aplicación, los binarios y las librerias necesarias) que se utilizan para construir contenedores Docker y ejecutarlos (los contenedores ejecutarán una imagen previamente compilada).


 

 

También podemos decir que las imagenes Docker son instancias de un contenedor.   Un contenedor se inicia ejecutando una imagen. El archivo Dockerfile define una imagen, y por tanto cómo será el contenedor que se creará a partir de esa imagen.

Y ese Dockerfile (que es un documento de texto) contiene todos los comandos que normalmente se ejecutan manualmente para construir una imagen para Docker. Docker puede leer las instrucciones de el archivo Dockerfile y construir una imagen para Docker automáticamente.  

   

 
 

imagen de  Free Code Camp


 
En este artículo:

 

 

1. PASOS PARA CREAR UNA IMAGEN DOCKER

 

Vamos a ver un resumen de los pasos necesarios para crear una imagen en Docker.

–> 1. Creamos nuestro Dockerfile, teniendo en cuenta la lista de instrucciones de los Dockerfile:

 

  • ADD
  • COPY
  • ENV
  • EXPOSE
  • FROM
  • LABEL
  • STOPSIGNAL
  • USER
  • VOLUME
  • WORKDIR

 

–> 2. Después creamos la imagen con docker build, a partir del Dockerfile creado.

–> 3. Y finalmente la ejecutamos con docker run.

 

 

2. Crear una imagen Docker (Ejemplo creando un “Hola Mundo“)

 
Las imagenes Docker se crean con un archivo llamado Dockerfile.

 

Crearemos una imagen creando el típico Hola Mundo (Hello World).

Así que primero creamos un Dockerfile con este contenido:

 

 

Después creamos la imagen de Docker:

 

Y finalmente la ejecutamos con:

 


 

 

Y en la sección de Contenedores podremos ver que el contenedor que se ha creado con la anterior imagen está creado y funcionando, aunque en este caso, si ha terminado su ejecución (solo saca por pantalla: hola mundo) ya no estaría en ejecución.
 

 

, aunque también podemos verlo en la lista de contenedores creados, en Portainer.

 

 

 
Sobre la imagen que hemos creado, podemos fijarnos en que la primera linea es:

La instrucción FROM inicializa una nueva etapa de compilación, y establece la imagen base para las instrucciones posteriores.

En este caso utiliza la imagen de ALPINE disponible en los repositorios públicos como los que hemos nombrado anteriormente (Docker Hub, Docker Cloud …).
 

 

2.1 ¿Qué es Alpine Linux?, ¿Por qué lo incluimos en la linea FROM?

 
Alpine Linux es una distro de Linux sencilla, simple y orientada a la seguridad y la eficiencia de recursos. La imagen solo ocupa 5 MB de tamaño, y proporciona acceso a un repositorio de paquetes muy completo.
 

 

La instrucción FROM inicializa una nueva etapa de compilación y establece la Imagen base para las instrucciones posteriores. Por eso desde esta instrucción llamamos a la imagen base de Alpine Linux en este caso.
 

 

 

 

3. Descargar una imagen Docker ya creada.

 
Si queremos utilizar una imagen ya creada, podemos hacerlo descargándola desde un registro a nuestra máquina Docker.

 
Registros donde podemos encontrar imagenes Docker:
 


 

 

3.1 Hypriot OS

 
Por ejemplo, aquí tenemos la imagen ya creada del “Hola Mundo” (Hello World) por Hypriot (blog especializado en Docker, con su propio sistema operativo Hypriot OS para Raspberry Pi, y decenas de artículos sobre Docker en Raspberry Pi).
 
Hello World de Hypriot OS para ARM: https://hub.docker.com/r/hypriot/armhf-hello-world/
 

 

 

 

Y a continuación todas las imagenes de Hypriot OS para Docker en Raspberry Pi (ARM):

 

 

 
Descargaremos una imagen ya creada, buscándola en el registro correspondiente, y usando el comando docker pull. Podremos ver cómo hacerlo desde el registro en el que se encuentre. Por ejemplo, en este caso el hello world de Hypriot:
 

 
podemos ver que se descarga con

 

 

 

4. Listar las imagenes DOCKER disponibles en nuestro sistema

 
Y para ver las imagenes que tenemos ya descargadas y compiladas en nuestra máquina Docker ejecutaremos:

 

 

Después podemos ejecutar esa aplicación con:

 
Las imagenes podemos compartirlas por medio del registro.
 
Y las etiquetaremos con:

 

 

5. Otros comandos de docker image

 

  • build: Construye una imagen a partir de un Dockerfile.
  • history: muestra el historial de una imagen.
  • import: importa el contenido de un comprimido para crear una imagen de sistema de archivos.
  • inspect: muestra información detallada sobre una o más imagenes:
  • load: carga una imagen desde un archivo .tar
  • ls: lista las imagenes.
  • prune: Desecha las imagenes no utilizadas.
  • pull: extrae una imagen o un repositorio de un registro.
  • push: sube una imagen o un repositorio a un registro.
  • rm: elimina una o más imagenes.
  • save: guarda una o má simagenes a un archivo .tar
  • tag: crea una etiqueta imagen_objetivo que refiere a una imagen origen.

 

 

 

6. CONCLUSIÓN

 

  • Hemos visto un pequeño resumen acerca de las imagenes Docker, cómo se crean, de dónde vienen, cómo se utilizan ..
  • También hemos hablado de los registros que utiliza Docker más a menudo.
  • Y hemos hablado de Hypriot OS para Raspberry Pi y de las imagenes disponibles para descargar y testear en nuestras Raspberrys.

 

Ahora solo os queda sacarle el jugo a este artículo y ponerse a practicar lo comentado!

 


Etiquetas del articulo: ,


Suscríbete para acceder a la zona privada

Suscribiéndote a la lista de correo de El Taller del Bit conseguirás entrar a la zona privada de descargas con materiales exclusivos (ebooks, artículos privados, plugins, descargas de exámenes resueltos ...)

Gracias. Te has suscrito con éxito!