Ejercicio 2: Introducción a los contenedores Docker
En este ejercicio vas a instalar Docker, trabajar con contenedores interactivos y en segundo plano, usar variables de entorno, gestionar imágenes y desplegar aplicaciones web. Todas las operaciones se realizan desde la línea de comandos.
Ejercicio 1: Instalación y primeros pasos
- Instala Docker en una máquina virtual y configúralo para que pueda usarlo un usuario sin privilegios.
- Ejecuta un contenedor a partir de la imagen
hello-world. Comprueba que la salida es la esperada. - Lista los contenedores en ejecución y después todos los contenedores, incluidos los parados. ¿Dónde está el contenedor
hello-world? Bórralo.
Ejercicio 2: Contenedores interactivos
- Crea un contenedor interactivo desde la imagen
debian. Instala el paquetenanodentro del contenedor. Sal del contenedor. ¿Sigue ejecutándose? ¿Por qué? - Vuelve a iniciar el contenedor y conéctate de nuevo a él de forma interactiva. ¿Sigue instalado
nano? - Sal del contenedor y bórralo. Crea un nuevo contenedor interactivo desde la misma imagen
debian. ¿Tienenanoinstalado? ¿Por qué?
Ejercicio 3: Contenedores en segundo plano
- Crea un contenedor en segundo plano con la imagen
httpd:2.4mapeando el puerto 8080 del host al puerto 80 del contenedor. Accede desde un navegador a la IP del servidor para comprobar que funciona. - Modifica el fichero
index.htmldel servidor web dentro del contenedor. Comprueba desde el navegador que el contenido ha cambiado. - Consulta los logs del contenedor. Para el contenedor y bórralo.
- Crea un contenedor en segundo plano con la imagen
mariadbusando las variables de entorno necesarias para su configuración. Comprueba que el contenedor está en ejecución y conéctate al servidor de base de datos. - Crea un contenedor con la aplicación Nextcloud usando la documentación de Docker Hub. Utiliza una variable de entorno para personalizar el nombre de la base de datos SQLite que va a utilizar.
Ejercicio 4: Imágenes y almacenamiento por capas
- Crea un contenedor demonio con la imagen
php:8.3-apache. Comprueba el tamaño que ocupa el contenedor en disco. - Crea un fichero
info.phpcon el contenido<?php echo phpinfo(); ?>y cópialo al directorio/var/www/htmldel contenedor. Vuelve a comprobar el espacio ocupado por el contenedor. ¿Ha cambiado? ¿Por qué? - Accede al fichero
info.phpdesde el navegador y comprueba que se sirve correctamente. - Intenta borrar la imagen
php:8.3-apachemientras el contenedor existe. ¿Qué ocurre? ¿Por qué?
Ejercicio 5: Despliegue de aplicaciones con distintas versiones
- Despliega tres contenedores de la aplicación MediaWiki usando tres versiones distintas de la imagen, cada uno mapeado a un puerto diferente del host.
- Accede desde el navegador a cada uno de los tres contenedores y comprueba que se trata de versiones distintas de la aplicación.
- Fíjate en el proceso de descarga de las imágenes. ¿Qué ocurre con las capas al descargar la segunda y tercera versión? ¿Por qué se descarga menos datos?