Introducción
En este laboratorio, te sumergirás en un escenario ambientado en la época victoriana, donde asumirás el papel de un comerciante de antigüedades. Tu objetivo es transportar y presentar artefactos históricos de manera efectiva utilizando tecnología moderna; específicamente, aprovechando los contenedores Docker para optimizar tus operaciones.
Imagina que eres un respetado comerciante de antigüedades en el Londres de la década de 1880, conocido por tu excepcional colección de artefactos de todo el mundo. Sin embargo, en lugar de las tradicionales cajas de madera y vitrinas, has descubierto una tecnología revolucionaria llamada "contenedores Docker" que te permite empaquetar, transportar y exhibir tus preciados objetos con una eficiencia y seguridad sin precedentes.
Al finalizar este laboratorio, comprenderás los conceptos básicos de los contenedores Docker y cómo utilizarlos para ejecutar aplicaciones, lo cual, en nuestro escenario victoriano, representa tu capacidad para gestionar y exhibir tu valiosa colección de antigüedades.
Configuración de tu entorno Docker
En este paso, comenzarás asegurándote de que tu entorno Docker esté correctamente configurado para ejecutar contenedores. Piensa en esto como la preparación de tu taller de antigüedades con las herramientas y el equipo necesarios.
Instala Docker ejecutando los siguientes comandos en tu terminal:
sudo apt update sudo apt install docker.ioEste primer comando actualiza tus listas de paquetes para asegurar que obtengas la versión más reciente de Docker, mientras que el segundo comando instala Docker propiamente dicho. El prefijo
sudootorga los privilegios administrativos necesarios para la instalación.Una vez instalado Docker, reinicia el servicio de Docker para que el demonio en ejecución coincida con la versión que acabas de instalar:
sudo systemctl restart dockerEste comando recarga el demonio de Docker con la versión del paquete recién instalada. Si Docker aún no se estaba ejecutando,
restarttambién inicia el servicio. Esto evita discrepancias en la versión de la API entre el cliente y el demonio al ejecutar tu primer contenedor.Verifica que Docker se esté ejecutando correctamente:
sudo systemctl status dockerEste comando comprueba si Docker está activo y funcionando correctamente. Deberías ver una salida que indique
active (running), lo que confirma que tu entorno Docker está listo. Si vesinactiveo algún mensaje de error, ejecutasudo systemctl restart dockernuevamente antes de continuar.Para asegurarte de que puedes ejecutar comandos de Docker sin usar
sudocada vez, añade tu usuario al grupo de Docker:sudo usermod -aG docker $USERNota: Después de ejecutar este comando, es posible que debas cerrar sesión y volver a iniciarla para que los cambios surtan efecto. Para este laboratorio, seguiremos usando
sudocon nuestros comandos de Docker para garantizar la compatibilidad.
Ejecución de un contenedor Hello-World
Ahora que tu entorno está configurado, ejecutarás tu primer contenedor Docker: un ejemplo simple de "hello-world". Considera esto como la exhibición de tu primer artefacto para asegurar que tu nueva tecnología de contenedores funcione como se espera.
Descarga (pull) la imagen "hello-world" desde Docker Hub:
sudo docker pull hello-worldEste comando descarga la imagen hello-world desde Docker Hub (un repositorio público de imágenes de Docker). Piensa en esto como la adquisición de tu primer artefacto de una tierra lejana. Docker Hub sirve como un mercado donde puedes encontrar contenedores preempaquetados para diversos fines.
Ejecuta el contenedor "hello-world":
sudo docker run hello-worldEste comando crea e inicia un contenedor a partir de la imagen hello-world. El contenedor ejecuta un programa simple que muestra un mensaje y luego se cierra. En nuestro escenario victoriano, esto equivale a mostrar brevemente tu primer artefacto para verificar que tu nuevo sistema de contenedores funciona correctamente. Si Docker informa una discrepancia en la versión de la API del cliente o del demonio aquí, reinicia el servicio con
sudo systemctl restart dockery luego vuelve a ejecutar el comando.Comprueba la salida para asegurarte de que el contenedor se ejecutó correctamente. Deberías ver un mensaje que comienza con "Hello from Docker!" seguido de algo de texto explicativo. Esto confirma que:
- Docker está instalado correctamente.
- Tu sistema puede crear contenedores con éxito.
- Puedes descargar imágenes desde Docker Hub.
Para ver una lista de todos los contenedores (incluidos los que han finalizado):
sudo docker ps -aEste comando muestra todos los contenedores, incluido el contenedor hello-world que ahora ha finalizado. Verás detalles como el ID del contenedor, la imagen a partir de la cual se creó, cuándo se creó y su estado actual.
Despliegue de un servidor web Nginx
En este paso, desplegarás un servidor web Nginx utilizando un contenedor Docker. En nuestro escenario victoriano, esto representa la instalación de una elegante vitrina (Nginx) para exhibir tus antigüedades más preciadas (contenido web) a los visitantes.
Descarga la imagen de Nginx desde Docker Hub:
sudo docker pull nginxEste comando descarga la imagen oficial de Nginx desde Docker Hub. Nginx es un servidor web popular que puede servir contenido HTML. Esto equivale a adquirir una fina vitrina para tu colección de antigüedades.
Ejecuta un contenedor Nginx en modo separado (detached mode), mapeando el puerto 80 del host al puerto 80 del contenedor:
sudo docker run -d -p 80:80 nginxAnalicemos este comando:
run: Crea e inicia un nuevo contenedor.-d: Ejecuta el contenedor en modo separado (en segundo plano).-p 80:80: Mapea el puerto 80 de tu máquina host al puerto 80 en el contenedor, permitiendo que el tráfico web llegue al servidor Nginx.nginx: Especifica la imagen a utilizar.
Esto es como colocar tu vitrina en tu sala de exposiciones y asegurarte de que los visitantes puedan ver tus antigüedades.
Verifica que tu contenedor Nginx se esté ejecutando:
sudo docker psEste comando muestra todos los contenedores en ejecución. Deberías ver tu contenedor Nginx en la lista, lo que indica que está funcionando activamente.
Añade un mapeo de servicio web desde el menú superior del laboratorio y establece el mapeo de puertos en 80. Si el servidor web Nginx se está ejecutando correctamente, el entorno del laboratorio navegará automáticamente a una URL aleatoria en el servidor, y deberías ver la página de bienvenida predeterminada de Nginx.
Opcional: Si deseas acceder al servidor Nginx desde tu navegador manualmente, puedes navegar a http://localhost o a la dirección IP de tu máquina.
Si encuentras algún problema, puedes consultar los registros (logs) del contenedor:
sudo docker logs <container_id>Reemplaza
<container_id>con el ID de tu contenedor Nginx, el cual puedes encontrar en la salida del comandodocker ps.
Resumen
En este laboratorio, te has introducido en los conceptos fundamentales de la ejecución de contenedores Docker. Al simular un contexto histórico y participar como un comerciante de antigüedades en la época victoriana, has adquirido experiencia práctica en el aprovechamiento de las capacidades de ejecución de Docker.
Has aprendido a:
- Configurar un entorno Docker.
- Descargar imágenes desde Docker Hub.
- Ejecutar contenedores tanto en primer plano como en modo separado.
- Exponer puertos de contenedores a la máquina host.
- Verificar el estado de los contenedores.
Estas habilidades forman la base de la tecnología de contenedores y pueden aplicarse a una amplia gama de aplicaciones más allá de nuestro escenario de comerciante de antigüedades. En los entornos modernos, estas mismas técnicas se utilizan para desplegar aplicaciones que van desde simples servidores web hasta complejas arquitecturas de microservicios.
La capacidad de empaquetar aplicaciones junto con sus dependencias en contenedores portátiles revoluciona la forma en que desplegamos y gestionamos el software, de manera muy similar a como los contenedores de carga estandarizados transformaron el comercio global. Como diría nuestro comerciante de antigüedades victoriano: "¡Estos maravillosos contenedores Docker revolucionarán la forma en que presentamos nuestros tesoros al mundo!"



