Introducción
Docker ha revolucionado la forma en que desplegamos y gestionamos aplicaciones al introducir los contenedores: entornos ligeros y portátiles que pueden ejecutarse en cualquier sistema que tenga Docker instalado. Como desarrollador o administrador de sistemas, dominar la gestión de contenedores Docker es fundamental para el despliegue y mantenimiento eficiente de aplicaciones. En este desafío, pondrás a prueba tus habilidades con Docker realizando una serie de tareas que cubren los aspectos esenciales de la gestión de contenedores mediante la interfaz de línea de comandos (CLI).
A lo largo de este desafío, navegarás por diversos escenarios que reflejan situaciones del mundo real que podrías encontrar al trabajar con contenedores Docker. Desde el lanzamiento de contenedores e inspección de sus registros hasta la ejecución de comandos en su interior y, finalmente, la limpieza de recursos, obtendrás experiencia práctica con el ciclo de vida completo de las operaciones de contenedores Docker.
¡Sumerjámonos y comencemos a dominar el arte de la gestión de contenedores Docker!
Iniciar un contenedor
El primer paso en cualquier flujo de trabajo de Docker suele ser el lanzamiento de un contenedor. En esta tarea, iniciarás un contenedor y aprenderás a acceder a sus registros (logs), una habilidad crucial para la resolución de problemas y el monitoreo del comportamiento del contenedor.
Tareas
Tus tareas son:
- Iniciar un contenedor llamado
my-container, basado en la imagennginx. - Visualizar los registros (logs) del contenedor
my-container.
Requisitos
- Utiliza el comando
docker runpara iniciar el contenedor. - Utiliza el comando
docker logspara ver los registros del contenedor. - Realiza todas las operaciones en el directorio
/home/labex/project.
Ejemplo
Tras completar con éxito este paso, deberías poder ver tu contenedor en ejecución al usar el comando docker ps. La salida debería ser similar a esta:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3a7d9f642a7f nginx "/docker-entrypoint.…" 12 seconds ago Up 11 seconds 80/tcp my-container
Esta salida confirma que tu contenedor Nginx está activo y funcionando, listo para servir contenido web.
¡Buen trabajo al lanzar tu primer contenedor! Ser capaz de iniciar contenedores y acceder a sus registros es fundamental para trabajar con Docker. A continuación, veremos cómo detener un contenedor en ejecución, otra habilidad esencial en la gestión de contenedores.
Detener un contenedor
Aunque ejecutar contenedores es importante, saber cómo detenerlos de forma controlada es igualmente crucial. Esta habilidad es particularmente útil cuando necesitas realizar tareas de mantenimiento, actualizar configuraciones o simplemente liberar recursos del sistema.
Tareas
Tu tarea es:
- Detener el contenedor llamado
my-container.
Requisitos
- Utiliza el comando
docker stoppara detener el contenedor. - Realiza todas las operaciones en el directorio
/home/labex/project.
Ejemplo
Después de detener con éxito el contenedor, puedes usar docker ps -a para ver todos los contenedores, incluidos los que están detenidos. La salida debería ser similar a esta:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3a7d9f642a7f nginx "/docker-entrypoint.…" 2 minutes ago Exited (0) 10 seconds ago my-container
Observa cómo el estado de my-container ha cambiado a "Exited", lo que indica que se ha detenido correctamente.
¡Excelente trabajo deteniendo el contenedor! Esta habilidad es vital para gestionar los ciclos de vida de los contenedores de manera efectiva. Ahora que has dominado el inicio y la detención de contenedores, pasemos a un tema más avanzado: ejecutar comandos dentro de un contenedor en funcionamiento.
Ejecutar comandos en un contenedor
Una de las características más potentes de Docker es la capacidad de ejecutar comandos dentro de un contenedor que ya está en funcionamiento. Esta capacidad es invaluable para la depuración, la ejecución de tareas de mantenimiento o la actualización de configuraciones sin necesidad de detener el contenedor.
Tareas
Tus tareas son:
- Iniciar un contenedor llamado
my-shell-container, basado en la imagenubuntu. El contenedor debe permanecer ejecutándose en segundo plano. - Ejecutar el comando
echo "Hello World"dentro del contenedormy-shell-container.
Requisitos
- Utiliza el comando
docker runpara iniciar el contenedor. - Asegúrate de que el contenedor permanezca activo después de iniciarse.
- Utiliza el comando
docker execpara ejecutar el comando dentro del contenedor. - Realiza todas las operaciones en el directorio
/home/labex/project.
Pista
Los contenedores basados en la imagen ubuntu se cerrarán inmediatamente después de iniciarse a menos que se especifique un comando de larga duración. Para mantener el contenedor activo, considera ejecutar un comando como sleep infinity al iniciar el contenedor. Por ejemplo:
docker your-command sleep infinity
Ejemplo
Después de iniciar el contenedor, puedes usar el comando docker ps para confirmar que está en ejecución. La salida debería ser similar a esta:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1a2b3c4d5e6f ubuntu "<command>" 30 seconds ago Up 29 seconds my-shell-container
Cuando ejecutes el comando echo dentro del contenedor, deberías ver la siguiente salida:
Hello World
Esto demuestra que has ejecutado con éxito un comando dentro del contenedor en funcionamiento.
¡Fantástico trabajo! Ahora has aprendido a interactuar con un contenedor en ejecución ejecutando comandos en su interior. Esta habilidad abre un mundo de posibilidades para la gestión y el mantenimiento de contenedores. En el paso final, aprenderemos cómo hacer limpieza eliminando los contenedores que ya no necesitamos.
Eliminar un contenedor
A medida que trabajes con Docker, a menudo crearás contenedores para tareas temporales o pruebas. Es importante limpiar estos contenedores cuando ya no sean necesarios para liberar recursos del sistema y mantener ordenado tu entorno de Docker.
Tareas
Tu tarea es:
- Detener y eliminar el contenedor llamado
my-shell-container.
Requisitos
- Utiliza el comando
docker stoppara detener el contenedor. - Utiliza el comando
docker rmpara eliminar el contenedor. - Realiza todas las operaciones en el directorio
/home/labex/project.
Ejemplo
Después de completar este paso, puedes usar docker ps -a para confirmar que el my-shell-container ha sido eliminado. Ya no deberías verlo en la lista de contenedores:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Esto indica que has eliminado con éxito el contenedor de tu sistema.
¡Felicidades por completar el paso final! Ahora has aprendido cómo limpiar tu entorno de Docker eliminando contenedores innecesarios. Esta habilidad es crucial para mantener un espacio de trabajo de Docker eficiente y organizado.
Resumen
En este desafío integral, has recorrido los aspectos esenciales de la gestión de contenedores Docker. Has demostrado tu capacidad para iniciar contenedores, acceder a sus registros, detener contenedores en ejecución, ejecutar comandos dentro de ellos y, finalmente, eliminarlos cuando ya no son necesarios.
Estas habilidades constituyen la base de un uso eficaz de Docker y te serán de gran utilidad en diversos escenarios, desde el desarrollo y las pruebas hasta los despliegues en producción. Has adquirido experiencia práctica con la CLI de Docker, lo cual es invaluable para cualquier persona que trabaje con aplicaciones contenedorizadas.
A medida que continúes tu camino con Docker, recuerda que estas operaciones básicas son los pilares para flujos de trabajo más complejos. Practica estas habilidades con regularidad y te volverás más competente en la gestión de contenedores, lo que en última instancia conducirá a procesos de desarrollo y despliegue más eficientes y optimizados.
¡Sigue explorando las capacidades de Docker y no dudes en experimentar con diferentes imágenes y configuraciones de contenedores! El mundo de la contenedorización es vasto y está lleno de posibilidades, ¡y ahora estás bien equipado para navegar en él con confianza!



