Saltar al contenido

Lección 7 de 12 · Lectura y práctica

Docker Compose: Conceptos y Sintaxis

Lección práctica para aplicar Docker Compose: Conceptos y Sintaxis dentro de Docker para Desarrolladores - Nivel Intermediate, con criterios de decisión, ejemplo guiado, ejercicio y checklist de salida.

Del concepto a la práctica

Taller de esta lección

Un archivo Compose declara servicios, redes, volúmenes, variables y publicaciones para que el entorno pueda reconstruirse de forma legible. Cada campo debe responder a una necesidad concreta: ports expone al host, environment configura el proceso y volumes define persistencia o desarrollo.

Ejemplo resuelto

Para una API y un almacenamiento local, declara dos servicios y un volumen nombrado:

yaml
services:
  api:
    build: .
    ports:
      - "8080:8080"
    depends_on:
      store:
        condition: service_healthy
  store:
    image: redis:7-alpine
    command: ["redis-server", "--appendonly", "yes"]
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 2s
      timeout: 1s
      retries: 10
    volumes:
      - store-data:/data
volumes:
  store-data:
  1. Identifica qué servicio construyes y cuál reutilizas.

  2. Publica solo el puerto de la API.

  3. Añade el volumen únicamente al servicio que necesita persistencia.

  4. Valida la configuración antes de iniciar.

Error frecuente: publicar todos los puertos internos; corrígelo dejando sin ports los servicios solo internos.

El volumen conserva los archivos que Redis efectivamente escriba. Activar appendonly hace explícito el modelo de persistencia; con la política por defecto puede perderse aproximadamente el último segundo ante un fallo, por lo que no equivale a pérdida cero. La dependencia healthy controla el arranque, pero la API todavía necesita reconexión ante fallos posteriores.

Pruébalo

Añade una red explícita localnet y conecta ambos servicios a ella sin cambiar el puerto publicado.

Comprueba tu resultado

La API debe conservar 8080:8080, store no debe tener ports, ambos servicios deben declarar localnet y el volumen debe seguir ligado a store.

Secuencia de código, imagen de contenedor, pruebas, registro y despliegue de instancias idénticas.
CursaloMapa de práctica
Del código al despliegue

El código se empaqueta en una imagen y se prueba antes de publicarlo. Esa misma imagen se guarda en un registro y se usa en el despliegue. Comprobar la salud de las instancias permite detectar un fallo sin reconstruir el artefacto.

Ver la infografía en tamaño completo ↗

Sigue con Docker para Desarrolladores - Nivel Intermediate

Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.

Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.

01 / ELEGIR UNA RUTA

El próximo paso

Aprende IA mientras construyes algo que sí necesitas.

Empieza por el curso inicial o explora el catálogo para encontrar una práctica alineada con tu trabajo.