⚙️ Docker Compose

✅ ¿Qué es Docker Compose?

Docker Compose es una herramienta que permite que múltiples contenedores o aplicaciones interactúen entre sí fácilmente dentro de un mismo entorno, tratándolos como una sola aplicación. Funciona a través de un único archivo llamado docker-compose.yml, en el que puedes definir, configurar y ejecutar todos los servicios necesarios para tu proyecto. Es especialmente útil cuando necesitas que varios componentes —como una aplicación web y una base de datos— trabajen juntos de forma coordinada y automatizada.

🚨 ¿Por qué usar Docker Compose?

🧱 Estructura del docker-compose.yml (Instrucciones)

Aquí tienes una tabla con las instrucciones más comunes que se usan en un archivo docker-compose.yml:

Instrucción Explicación Ejemplo
version Define la versión del archivo Compose. '3.3'
services Agrupa todos los contenedores (servicios). services:
name (personalizado) Nombre de cada servicio/contenedor. webserver, database
build Ruta donde está el Dockerfile. (Usas esto o image) ./webserver
image Imagen a usar para el contenedor. (Usas esto o build) mysql:latest
ports Mapea puertos del host al contenedor. '80:80'
volumes Monta carpetas del host dentro del contenedor. './webserver:/var/www/html'
environment Variables de entorno (útil para configuraciones como contraseñas). MYSQL_ROOT_PASSWORD=helloworld
networks Redes a las que pertenece el contenedor. ecommerce

⚠️ YAML requiere buena indentación (usa 2 espacios, sin tabs).

📄 **Estructura básica de un `docker-compose.yml

`**

version: '3.3'  # Versión de Docker Compose

services:  
	# Aquí van todos los contenedores (servicios)
  web:
    build: ./web  # Ruta al Dockerfile del contenedor web
    ports:
      - "80:80"
    networks:
      - ecommerce

  database:
    image: mysql:latest  # Imagen oficial de MySQL
    environment:
      - MYSQL_DATABASE=ecommerce
      - MYSQL_USERNAME=root
      - MYSQL_ROOT_PASSWORD=helloworld
    networks:
      - ecommerce

networks:
  ecommerce:  # Red interna para que los servicios se comuniquen

📁 Estructura de carpetas:

📁 proyecto/
├── docker-compose.yml
└── web/
    └── Dockerfile

🛠️ Comandos útiles de Docker Compose

Comando Descripción
docker-compose up Crea y levanta todos los contenedores.
docker-compose down Detiene y elimina contenedores/redes.
docker-compose start Inicia contenedores ya creados.
docker-compose stop Detiene contenedores sin eliminarlos.
docker-compose build Solo construye las imágenes, sin levantarlas.
💡 Usa -d para levantar en segundo plano: docker-compose up -d