Docker – Imágenes – Contenedores – Instancias.

Docker imagenes contenedores instancias

¿De qué hablamos cuando nos referimos a Docker? Imágenes –  Contenedeores –  Instancias.

En este post vamos descubrir cual es la diferencia.

 

Docker imagenes contenedores instancias
Docker – imágenes -contenedores – instancias.

¿Qué es una imagen?

Una imagen es una plantilla, de un contenedor que corre alguna aplicación. Las imágenes al ser plantillas van a ser  usadas para crear nuevos contenedores. Las plantillas nunca cambian a menos que creemos una nueva a partir de un contenedor.

Hay muchas imágenes públicas con elementos básicos como Java, Ubuntu, Apache…etc, que se pueden descargar y utilizar.

Cuando lo que necesitamos es crear nuevas imágenes, partimos de una imagen padre básica, como por ejemplo una imagen de Debian a la que le vamos añadiendo programas.

¿Qué es una contenedor o instancia?

Consideramos instancia a la ejecución de una imagen. Las instancias son las encargadas de ejecutar las aplicaciones que necesitamos. A partir de una única imagen, podemos ejecutar varios contenedores a los que también llamaremos instancias.

Ahora que entendimos la diferencia podemos hacer una práctica.

¿Cómo descargamos una imagen?

Para ver la diferencia entre Docker, Imágenes, Contenedeores e Instancias, vamos a descargar desde los repositorios una imagen de Debian 10.

 

 

:~$ docker run debian:buster
Unable to find image 'debian:buster' locally
buster: Pulling from library/debian
376057ac6fa1: Already exists 
Digest: sha256:4ab3309ba955211d1db92f405be609942b595a720de789286376f030502ffd6f
Status: Downloaded newer image for debian:buster

Como podemos observar se descargo desde el repo llamado debian la imagen llamada buster, que se guardó localmente.

El paso que sigue es ver cuales son las imágenes descargadas en nuestro repositorio local. El comando es el siguiente:

 

:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
debian              buster              5971ee6076a0        3 weeks ago         114MB

Como podemos observar en nuestro repositorio local debian tenemos una imagen llamada buster. El siguiente paso es saber si tenemos alguna instancia corriendo, recordemos que instancia y contenedor son sinónimos. Para esto usaremos el siguiente comando:

:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
1a5e3742bcc9        debian:buster       "bash"              8 minutes ago       Exited (0) 8 minutes ago                       crazy_turing

Como vemos tenemos un contenedor cuyo ID es 1a5e3742bcc9 y está asociado al repositorio local debian y a la imagen llamada buster. El comando ejecutado fue bash, en este momento podemos ver que el contenedor está apagado (Exited) , y el nombre es crazy_turing.

Ahora vamos a correr un contenedor y vamos a ingresar a él para trabajar. Tengamos en cuenta que éste contenedor va a quedar stop porque su único trabajo era correr bash y teminar.

 

$ docker run -it debian:buster /bin/bash
root@ec3d1110711a:/#

Como vemos,  quedamos dentro del contenedo. Si salimos el mismo queda en estado exited.