Ejecutar un contenedor de Docker

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, te sumergirás en un escenario ambientado en la era victoriana, donde asumirás el papel de un comerciante de antigüedades. Tu objetivo es transportar y presentar de manera efectiva artefactos históricos utilizando tecnología moderna, específicamente, aprovechando los contenedores Docker para optimizar tus operaciones.

Imagina que eres un respetado comerciante de antigüedades en 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 y vitrinas, has descubierto una tecnología revolucionaria llamada "contenedores Docker" que te permite empaquetar, transportar y exhibir tus objetos preciosos con una eficiencia y seguridad sin precedentes.

Al final de este laboratorio, entenderá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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") subgraph Lab Skills docker/run -.-> lab-271495{{"Ejecutar un contenedor de Docker"}} end

Configuración de tu entorno Docker

En este paso, comenzarás asegurándote de que tu entorno Docker esté configurado correctamente para ejecutar contenedores. Piensa en esto como preparar tu taller de antigüedades con las herramientas y equipos necesarios.

  1. Instala Docker ejecutando los siguientes comandos en tu terminal:

    sudo apt update
    sudo apt install docker.io

    Este primer comando actualiza tus listas de paquetes para asegurarte de obtener la última versión de Docker, mientras que el segundo comando instala Docker en sí. El prefijo sudo otorga los privilegios administrativos necesarios para la instalación.

  2. Una vez que Docker esté instalado, inicia el servicio de Docker:

    sudo systemctl start docker

    Este comando activa el servicio de Docker, similar a abrir tu taller para el negocio. El demonio de Docker ahora está ejecutándose en segundo plano, listo para procesar tus solicitudes de contenedores.

  3. Verifica que Docker se esté ejecutando correctamente:

    sudo systemctl status docker

    Este comando comprueba si Docker está activo y funcionando correctamente. Deberías ver una salida con "active (running)" en texto verde, lo que confirma que tu entorno Docker está listo. Si ves "inactive" o cualquier mensaje de error, es posible que debas volver a intentar iniciar el servicio.

  4. Para asegurarte de que puedas ejecutar comandos de Docker sin usar sudo cada vez, agrega tu usuario al grupo de Docker:

    sudo usermod -aG docker $USER

    Nota: Después de ejecutar este comando, es posible que debas cerrar sesión y volver a iniciar sesión para que los cambios surtan efecto. Para este laboratorio, continuaremos usando sudo con 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 sencillo ejemplo de "hello-world". Considera esto como mostrar tu primer artefacto para asegurarte de que tu nueva tecnología de contenedores funcione como se espera.

  1. Descarga la imagen "hello-world" desde Docker Hub:

    sudo docker pull hello-world

    Este comando descarga la imagen hello-world desde Docker Hub (un repositorio público de imágenes Docker). Piensa en esto como adquirir tu primer artefacto de una tierra lejana. Docker Hub funciona como un mercado donde puedes encontrar contenedores preempaquetados para diversos fines.

  2. Ejecuta el contenedor "hello-world":

    sudo docker run hello-world

    Este comando crea e inicia un contenedor a partir de la imagen hello-world. El contenedor ejecuta un programa sencillo que muestra un mensaje y luego se cierra. En nuestro escenario victoriano, esto es equivalente a mostrar brevemente tu primer artefacto para verificar que tu nuevo sistema de contenedores funcione correctamente.

  3. Comprueba la salida para asegurarte de que el contenedor se haya ejecutado correctamente. Deberías ver un mensaje que comience con "Hello from Docker!" seguido de algún texto explicativo. Esto confirma que:

    • Docker está instalado correctamente
    • Tu sistema puede crear contenedores con éxito
    • Puedes descargar imágenes desde Docker Hub
  4. Para ver una lista de todos los contenedores (incluidos aquellos que se han cerrado):

    sudo docker ps -a

    Este comando muestra todos los contenedores, incluyendo el contenedor hello-world que ahora se ha cerrado. Verás detalles como el ID del contenedor, de qué imagen 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 configurar un elegante vitrina (Nginx) para exhibir tus antigüedades más preciadas (contenido web) a los visitantes.

  1. Descarga la imagen de Nginx desde Docker Hub:

    sudo docker pull nginx

    Este comando descarga la imagen oficial de Nginx desde Docker Hub. Nginx es un popular servidor web que puede servir contenido HTML. Esto es equivalente a adquirir una hermosa vitrina para tu colección de antigüedades.

  2. Ejecuta un contenedor de Nginx en modo desatendido, mapeando el puerto 80 del host al puerto 80 del contenedor:

    sudo docker run -d -p 80:80 nginx

    Analicemos este comando:

    • run: Crea e inicia un nuevo contenedor
    • -d: Ejecuta el contenedor en modo desatendido (en segundo plano)
    • -p 80:80: Mapea el puerto 80 de tu máquina host al puerto 80 del 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 exposición y asegurarte de que los visitantes puedan ver tus antigüedades.

  3. Verifica que tu contenedor de Nginx esté en ejecución:

    sudo docker ps

    Este comando muestra todos los contenedores en ejecución. Deberías ver tu contenedor de Nginx en la lista, lo que indica que está activamente en funcionamiento.

  4. Agrega un mapeo de servicio web desde el menú superior del laboratorio y configura el mapeo de puertos a 80. Si el servidor web Nginx se está ejecutando correctamente, el entorno del laboratorio automatizará la navegación a una URL aleatoria en el laboratorio del servidor, y deberías ver la página de bienvenida predeterminada de Nginx.

  5. 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.

  6. Si encuentras algún problema, puedes ver los registros del contenedor:

    sudo docker logs <container_id>

    Reemplaza <container_id> con el ID de tu contenedor de Nginx, que puedes encontrar en la salida del comando docker ps.

Resumen

En este laboratorio, se te han presentado los conceptos fundamentales de la ejecución de contenedores Docker. Al simular un contexto histórico y asumir el papel de un comerciante de antigüedades en la era victoriana, has adquirido experiencia práctica en el aprovechamiento de las capacidades de ejecución de Docker.

Has aprendido cómo:

  • Configurar un entorno Docker
  • Descargar imágenes desde Docker Hub
  • Ejecutar contenedores en modo foreground y desatendido
  • 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 se pueden aplicar a una amplia gama de aplicaciones más allá de nuestro escenario de comerciante de antigüedades. En entornos modernos, se utilizan las mismas técnicas para desplegar aplicaciones que van desde servidores web simples hasta arquitecturas de microservicios complejas.

La capacidad de empaquetar aplicaciones con sus dependencias en contenedores portátiles revoluciona la forma en que desplegamos y gestionamos el software, al igual que los contenedores de transporte 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!"