Gestión de Secuencias y Recursos con Docker Compose

Clase 28 de 34Curso de Docker Avanzado

Resumen

¿Qué descubrí sobre Docker Compose?

Explorando Docker Compose, descubrí un aspecto vital sobre la secuencia de apagado que brinda una forma eficiente de gestionar los recursos de tu computadora. Aunque este detalle ha estado presente desde el inicio, al encontrarlo accidentalmente, su utilidad se destacó: permite ahorrar recursos significativamente. A continuación, te mostraré cómo implementar esta característica.

¿Cómo configurar Docker Compose?

Para comenzar, necesitamos crear una estructura básica de carpetas y archivos. Estos pasos te ayudarán a seguir el proceso de manera adecuada:

  1. Crear carpetas:
  • Una carpeta principal llamada apagado.
  • Una subcarpeta llamada frontend o sitio_web. El nombre no es crucial, pero es importante recordar su ubicación.
  1. Crear un Dockerfile:
  • Dentro de la carpeta frontend, crea un archivo llamado Dockerfile.
  • Este archivo debe simular un pequeño servidor web con Nginx y contener un archivo HTML para simular un servidor web.
  1. Archivo docker-compose.yml:
  • Crea un archivo docker-compose.yml en la carpeta apagado.

  • Define tres servicios:

    • Web Service: Usa una imagen de Nginx y depende del servicio app.
    • App Service: Desplegado con la carpeta frontend.
    • DB Service: Un servicio simple de base de datos.

    version: '3' services: db: image: your_db_image

    app: build: ./frontend depends_on: - db

    web: image: nginx depends_on: - app

Estos elementos configuran el orden de inicio: DB primero, después App, y por último Web, según sus dependencias.

¿Cómo manejar el apagado de Docker Compose?

Al ejecutar docker-compose up, notarás que los servicios se inician en el orden especificado. Sin embargo, al detener la aplicación con Ctrl + C, los servicios se apagan en orden inverso: comenzando por Web. Este enfoque en cadena asegura que cada servicio dependiente tenga un cierre ordenado antes de su predecesor.

Ahora, es crucial entender la diferencia entre simplemente usar Ctrl + C y docker-compose down:

  1. Ctrl + C:
  • Detiene la aplicación, pero los contenedores y redes aún persisten. Esto puede consumir recursos innecesarios si olvidamos eliminarlos después.
  1. Docker Compose Down:
  • Este comando limpia completamente los contenedores, las redes y cualquier otro recurso. Con docker-compose down, garantizas que Docker Desktop o cualquier entorno de Docker esté realmente limpio, liberando recursos de tus máquinas virtuales de manera eficiente.

Usar docker-compose down requiere más esfuerzo, ya que debes abrir una nueva terminal y posicionarte exactamente en la misma ubicación del proyecto antes de ejecutar el comando. No obstante, los beneficios son notables en la gestión de recursos.

¿Por qué es importante este proceso en el entorno local?

Implementar este método de apagado optimiza tu entorno de desarrollo local. Aquí algunos beneficios:

  • Optimización de recursos: Al liberar recursos al cerrar correctamente tus servicios.
  • Mantenimiento limpio: La limpieza completa evita que los contenedores y redes queden pendientes, lo que podría causar conflictos en futuros despliegues.
  • Eficiencia en el desarrollo: Te permite concentrarte en el desarrollo, sin preocuparte por limpiar manualmente los recursos.

En resumen, comprender y aplicar estas tácticas no solo optimiza el uso de Docker Compose, sino que también refuerza el buen manejo de los entornos de desarrollo, ahorrando tiempo y esfuerzo técnico.