En esta lección vas a entender qué es Docker Compose y cómo usarlo para levantar varios contenedores desde un solo archivo. Es una pieza clave cuando una aplicación necesita base de datos, backend, frontend, caché o servicios auxiliares en el mismo entorno de pruebas.
La idea no es memorizar opciones sueltas, sino aprender qué problema resuelve Compose, cómo leer un archivo básico y qué comandos mínimos necesitas para verificar que todo funciona sin romper datos.
👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis.
🐳 Si quieres aprender más de Docker, pincha en este curso de Docker gratis.
Qué es Docker Compose
Problema: cuando una aplicación usa varios contenedores, repetir comandos docker run para cada servicio se vuelve frágil. Tienes que recordar puertos, variables, redes, volúmenes, nombres y orden de arranque.
Qué aporta esta herramienta: permite declarar ese stack en un archivo compose.yml y levantarlo con un flujo repetible. Así puedes versionar la configuración, compartirla con tu equipo y reconstruir el entorno de laboratorio con menos pasos manuales.
- Servicios: cada bloque describe un contenedor o grupo de contenedores del proyecto.
- Redes: se crea una red para que los servicios puedan resolverse por nombre.
- Volúmenes: guardan datos persistentes, por ejemplo en una base de datos.
- Proyecto: agrupa recursos para poder levantarlos, inspeccionarlos y detenerlos juntos.
Ejemplo mínimo de Compose
Este ejemplo levanta una base de datos PostgreSQL y un contenedor Alpine de laboratorio. La contraseña es didáctica: en proyectos reales no guardes secretos directamente en el archivo; usa variables de entorno, archivos protegidos o un gestor de secretos.
services:
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: ejemplo_seguro
volumes:
- datos_db:/var/lib/postgresql/data
app:
image: alpine:3.20
command: sh -c "while true; do sleep 3600; done"
depends_on:
- db
volumes:
datos_db:Guarda el contenido como compose.yml en una carpeta de pruebas. Antes de levantar el stack, valida la sintaxis para detectar errores de indentación o claves mal escritas.
Comandos esenciales
docker compose config
# Después usa el mismo prefijo para levantar, revisar y apagar:
up -d
ps
logs -f
down- config comprueba y normaliza el archivo antes de arrancar servicios.
- up -d crea la red, el volumen y los contenedores en segundo plano.
- ps muestra qué servicios están levantados y su estado.
- logs -f ayuda a revisar qué está pasando dentro del stack.
- down detiene y elimina los contenedores y la red del proyecto, pero no borra volúmenes nombrados por defecto.
Si estás empezando, esta secuencia es suficiente para practicar qué es Docker Compose sin entrar todavía en despliegues avanzados, CI/CD o ajustes internos de Docker Engine.
Errores comunes y límites
Creer que depends_on espera a la aplicación
depends_on controla el orden de arranque, pero no garantiza que la base de datos ya acepte conexiones. Para aplicaciones reales conviene añadir healthchecks o lógica de reintento en el servicio que se conecta.
Borrar volúmenes sin querer
El subcomando down no elimina volúmenes nombrados por defecto. En cambio, down -v sí puede borrar datos persistentes. Úsalo solo en laboratorios desechables y después de confirmar que no necesitas esos datos.
Usar secretos en texto plano
El ejemplo anterior usa una contraseña simple para que la práctica sea reproducible. En producción, no metas credenciales reales directamente en compose.yml ni las subas a Git.
Confundir Compose con producción completa
Compose es excelente para desarrollo, laboratorios, demos y muchos despliegues sencillos. Para orquestación distribuida, alta disponibilidad o políticas complejas, tendrás que estudiar herramientas y patrones más avanzados.
Siguiente paso en el curso
Ahora que ya sabes qué es Docker Compose, el siguiente paso es relacionarlo con imágenes, contenedores y archivos Dockerfile. Compose no sustituye esos conceptos: los organiza para que un stack sea más fácil de reproducir.
Si todavía estás repasando la base, vuelve a la guía completa de Docker y refuerza primero cómo funcionan los contenedores antes de automatizar varios servicios juntos.
Lecciones relacionadas del curso Docker
- guía de Compose: pieza principal para profundizar en stacks con varios servicios.
- Dockerfile: aprende a construir imágenes para usarlas después desde Compose.
- contenedor Docker: repasa la unidad básica que termina levantando esta herramienta.
- guía completa de Docker: índice del curso y ruta recomendada para seguir aprendiendo.
Documentación oficial y recursos
- documentación oficial de Compose: guía oficial para entender el flujo general.
- Compose file reference: referencia oficial del formato compose.yml.
- referencia de la CLI: comandos y opciones disponibles en la CLI actual.
En resumen, Compose convierte una colección de contenedores en un entorno declarativo y repetible. Empieza con archivos pequeños, valida la configuración antes de arrancar y ten cuidado con los volúmenes cuando practiques comandos de limpieza.
Cuando domines esta base, podrás usar esta herramienta como puente entre tus primeros contenedores y escenarios más completos con redes, volúmenes, imágenes propias y automatización del entorno.

