Title: Docker Compose: definición de servicios.
Course: 2025 - LISI - Virtualizacion 2-2 > Section: Desarrollo y Orquestación con Docker

🧱 Tema: Docker Compose – Definición y Despliegue de Servicios

🎯 Objetivo

Aprender a definir y desplegar múltiples servicios en contenedores Docker de forma coordinada usando archivos docker-compose.yml, facilitando la gestión de aplicaciones complejas.

📘 1. ¿Qué es Docker Compose?

Docker Compose es una herramienta que permite definir y ejecutar aplicaciones multicontenedor. Utiliza un archivo YAML para configurar los servicios, redes, volúmenes y dependencias de una aplicación.

🔹 Ventajas:

- Simplifica el despliegue de entornos complejos
- Permite escalar servicios fácilmente
- Facilita la integración con CI/CD
- Mejora la organización del proyecto

📄 2. Estructura del archivo docker-compose.yml

version: '3.8'

services:

  web:

    image: nginx

    ports:

      - "80:80"

    volumes:

      - ./html:/usr/share/nginx/html

  db:

    image: mysql:5.7

    environment:

      MYSQL_ROOT_PASSWORD: ejemplo123

    volumes:

      - db_data:/var/lib/mysql

volumes:

  db_data:

🔍 Explicación:

- services: define los contenedores
- image: imagen que se usará
- ports: mapeo de puertos
- volumes: persistencia de datos
- environment: variables de entorno
- volumes: al final define volúmenes nombrados

🛠️ 3. Actividad Práctica Guiada

🧪 Objetivo:

Desplegar una aplicación web con Nginx y una base de datos MySQL usando Docker Compose.

📁 Estructura del proyecto:

mi_app/
│
├── docker-compose.yml
├── html/
│   └── index.html


📄 Contenido de index.html:

📄 Comando para iniciar:

docker-compose up -d

📄 Comando para detener:

docker-compose down

🧠 Buenas Prácticas

- Usar versiones específicas de imágenes (mysql:5.7, nginx:1.21)
- Separar archivos de configuración (.env, Dockerfile)
- Versionar el archivo docker-compose.yml con Git
- Documentar los servicios y dependencias

📚 Recursos Complementarios

- Documentación oficial de Docker Compose
- Repositorios de ejemplo: Awesome Compose
- Tutoriales en YouTube: “Docker Compose desde cero”