2. Docker

2.3. Descargar contenedores creados

En primer lugar, miraremos si tenemos alguna imagen en nuestro sistema. En teoría, si es la primera vez que utilizas Docker, te debería aparecer una lista en blanco al utilizar:

$ docker image ls

Empezaremos por el contenedor más sencillo y lo bajaremos directamente:

$ docker image pull hello-world

Hay el proceso de descarga y si todo ha funcionado correctamente al repetir el comando de listado de imágenes os debería aparecer la imagen hello-world.

La imagen de «hello-world» procede de Docker Hub, un repositorio de imágenes.

Seguidamente, ejecutaremos el contenedor que se cree a partir de la imagen hello-world mediante:

$ docker container run hello-world

Una vez ejecutado recibiréis un mensaje de parte del equipo de Docker (figura 4).

Figura 4. Mensaje de bienvenida del equipo de Docker al ejecutar «hello-world».
Fuente: elaboración propia.

Cuando se ejecuta un contenedor suceden tres procesos:

  • Inicializa el contenedor a partir de la imagen.
  • Se ejecuta la acción preestablecida del contenedor si esta existe.
  • Una vez la acción ha finalizado el contenedor se para.

En el caso del ejemplo anterior la acción preestablecida era imprimir el mensaje de bienvenida, pero la acción realizada puede ser mucho más compleja.

Además de poder ejecutar los comandos predeterminados por el contenedor también le podemos pasar comandos o entrar en modo interactivo. Para probar estas opciones ejecutaremos el contenedor Alpine que contiene una distribución de Ubuntu muy simple.

$ docker container run -it alpine sh

En este comando utilizamos la opción it para ser interactivo y sh nos especifica que el terminal que queremos utilizar es bash.

Veréis que la línea de comandos cambia a:

/ #

Podréis comprobar que ahora estáis dentro de Alpine y al ejecutar

/ #  cat /etc/os-release

os mostrará la versión de Alpine que os habéis bajado.

De esta manera, una vez ejecutado el contenedor no se ha finalizado como habíamos observado anteriormente, sino que se mantiene activo y responde a los comandos que introduzcamos.

Para poder salir del contenedor y finalizar su ejecución podéis introducir el comando exit.