Qué es Docker Compose: guía completa con ejemplos reales

| Última modificación: 28 de mayo de 2026 | Tiempo de Lectura: 6 minutos
Premios Blog KeepCoding 2025

Contribuyo a acercar la realidad del sector tecnológico a nuevos profesionales, combinando conocimiento práctico, visión de mercado y experiencia directa en procesos de transformación profesional.

La mayoría de las aplicaciones reales no son un único contenedor. Son una combinación de servicios: un servidor web, una base de datos, un servidor de caché, quizá una cola de mensajes. Gestionar cada uno de esos contenedores manualmente con comandos individuales es ineficiente y propenso a errores.

Docker Compose resuelve exactamente ese problema. Define toda la infraestructura de la aplicación en un único archivo YAML y la levanta con un solo comando.

Es la herramienta que convierte Docker de una solución para contenedores individuales en una plataforma real de orquestación para el desarrollo y el despliegue de aplicaciones complejas.

Docker Compose V2 está incluido directamente en Docker Desktop desde 2022 y en las instalaciones modernas de Docker Engine en Linux. No requiere instalación separada. Si usas Docker, ya tienes Docker Compose.

Si todavía no tienes claro qué es Docker y cómo funciona la arquitectura de contenedores, el artículo sobre qué es Docker cubre los fundamentos antes de entrar en la orquestación multi-contenedor.



Qué es Docker Compose

Docker Compose es una herramienta que permite definir y ejecutar aplicaciones formadas por múltiples contenedores Docker. Su funcionamiento se basa en un archivo de configuración en formato YAML, habitualmente llamado docker-compose.yml, donde se describe toda la infraestructura que necesita la aplicación: los servicios, las redes internas entre ellos y los volúmenes de datos.

En lugar de ejecutar comandos individuales para crear redes, iniciar contenedores, configurar puertos y definir dependencias, Docker Compose hace todo eso automáticamente a partir del archivo de configuración. Un solo comando (docker compose up) levanta toda la pila de servicios correctamente configurada y conectada.

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

Imagina una aplicación web típica con tres componentes: un servidor Node.js, una base de datos PostgreSQL y Redis para caché. Sin Docker Compose necesitarías arrancar tres contenedores con comandos separados, crear una red para que se comuniquen y asegurarte de que la base de datos arranca antes que la aplicación.

Con Docker Compose, todo eso está en el docker-compose.yml y se ejecuta con un solo comando.

Docker Compose V2: lo que ha cambiado

Qué es Docker Compose

Docker Compose V2 sustituyó a la versión original (V1) en 2022 y es el estándar actual. Los cambios más importantes que conviene conocer:

  • El comando cambia de docker-compose a docker compose (sin guion). Docker Compose V2 es un plugin de Docker, no una herramienta separada.
  • La clave version: está deprecada. Muchos tutoriales y artículos todavía incluyen version: '3.8' al inicio del archivo. En Docker Compose V2 esa línea es ignorada y puede omitirse completamente.
  • Incluido en Docker Desktop. No requiere instalación adicional en Windows, macOS ni en las distribuciones Linux modernas que usan Docker Engine actualizado.

Cómo funciona el archivo docker-compose.yml

El archivo docker-compose.yml tiene una estructura jerárquica con tres secciones principales: services, volumes y networks. La sección de servicios es la más importante y la que define los contenedores de la aplicación.


Services: los contenedores de la aplicación

Cada servicio definido en la sección services corresponde a un contenedor. Para cada servicio se especifica la imagen a usar o el Dockerfile para construirla, los puertos expuestos, los volúmenes montados, las variables de entorno y cualquier otra configuración.

Volumes: persistencia de datos

Los volúmenes en Docker Compose sirven para persistir datos fuera del ciclo de vida del contenedor. Hay dos tipos principales.

Los volúmenes nombrados (como postgres_data en el ejemplo) son gestionados por Docker y persisten aunque el contenedor se elimine. Son la forma correcta de persistir datos de bases de datos.

Los bind mounts montan un directorio del host dentro del contenedor. Se usan en desarrollo para que los cambios en el código se reflejen instantáneamente en el contenedor sin reconstruir la imagen:

Networks: comunicación entre servicios

Por defecto, Docker Compose crea automáticamente una red compartida para todos los servicios definidos en el mismo archivo. Los servicios se pueden comunicar entre sí usando el nombre del servicio como hostname.

En el ejemplo anterior, el servicio web puede conectarse a la base de datos usando el hostname db, que es el nombre del servicio en el archivo Compose. No hace falta conocer la IP del contenedor.

Para aplicaciones más complejas se pueden definir redes explícitas que aíslan grupos de servicios:

depends_on: orden de arranque

depends_on define que un servicio no debe arrancar hasta que los servicios de los que depende estén en marcha. En el ejemplo, el servicio web espera a que db esté listo antes de arrancar.

En Docker Compose V2 se puede combinar con condition para esperar no solo a que el contenedor arranque sino a que el servicio dentro esté realmente disponible:

Variables de entorno

Las variables de entorno se pueden definir directamente en el docker-compose.yml o referenciar desde un archivo .env:

El archivo .env nunca debe subirse al repositorio. Se documenta con un archivo .env.example que sí va al repositorio con valores de ejemplo.

Ejemplo completo: aplicación Node.js con PostgreSQL y Redis

Este es un ejemplo real de un archivo docker-compose.yml para una aplicación Node.js con base de datos PostgreSQL y caché Redis:

Con este archivo, docker compose up levanta los tres servicios en el orden correcto, con la base de datos esperando a estar lista antes de que arranque la aplicación.

Comandos esenciales de Docker Compose

Comandos Docker Compose esenciales
Comando Qué hace
docker compose up Construye las imágenes (si es necesario) y arranca todos los servicios
docker compose up -d Arranca los servicios en segundo plano (modo detached)
docker compose up --build Fuerza la reconstrucción de las imágenes antes de arrancar
docker compose down Detiene y elimina los contenedores y las redes creadas
docker compose down -v Detiene contenedores y también elimina los volúmenes
docker compose ps Lista el estado de los servicios definidos en el Compose
docker compose logs Muestra los logs de todos los servicios
docker compose logs -f servicio Sigue los logs en tiempo real de un servicio concreto
docker compose exec servicio bash Abre una terminal dentro del contenedor del servicio
docker compose build Construye o reconstruye las imágenes sin arrancar los servicios
docker compose watch Activa la sincronización automática de código (Compose Watch, V2.22+)

Docker Compose vs Kubernetes: cuándo usar cada uno

Docker Compose

Es una pregunta frecuente cuando se empieza a trabajar con contenedores. La respuesta depende del contexto.

Ideal para desarrollo local, entornos de prueba y aplicaciones en un único host. Simple de configurar y mantener. No requiere infraestructura adicional. El estándar en equipos de desarrollo.

Diseñado para producción a escala en múltiples nodos. Auto-escalado, alta disponibilidad y despliegue en cloud. Mayor complejidad de configuración y operación. Necesario cuando la aplicación crece más allá de un solo servidor.

La estrategia habitual en equipos profesionales es usar Docker Compose en desarrollo y Kubernetes en producción. Los contenedores son los mismos en ambos entornos, lo que garantiza la paridad dev/prod.

Conoce la historia de Rubén Martínez Gómez
«

Rubén trabajaba como ingeniero de aplicaciones cuando decidió dar el salto al ecosistema DevOps. Cada oferta interesante mencionaba Docker, Kubernetes y Terraform. Hizo el Bootcamp DevOps de KeepCoding para entender ese ecosistema desde dentro.

Hoy trabaja como SRE en Red Hat con Kubernetes y Jenkins en producción. Docker Compose fue su punto de entrada al mundo de la orquestación de contenedores, y el conocimiento que adquirió en desarrollo le resultó directamente aplicable en producción.

«
Leer el caso de éxito completo de Rubén Martínez Gómez


Cómo aprender Docker Compose de forma profesional

Docker Compose es una herramienta que se aprende rápido en los conceptos básicos. En pocas horas se puede tener un entorno multi-contenedor funcionando.

Lo que más tarda en desarrollarse es el criterio para diseñar archivos Compose que escalen bien: saber cuándo usar volúmenes nombrados y cuándo bind mounts, cómo estructurar las redes para aplicaciones con múltiples capas y cómo integrar Docker Compose en pipelines CI/CD reales.

Para ver Docker Compose en un caso de uso real con FastAPI, el artículo sobre FastAPI con Docker Compose muestra el flujo completo de una aplicación Python desplegada con Compose.

Y para la configuración de entornos de desarrollo completos con hot reload y debugging, el artículo sobre cómo usar Docker para entornos de desarrollo cubre el caso de uso más habitual.

Sobre el Bootcamp DevOps de KeepCoding: Docker Compose es uno de los módulos fundamentales del programa. Los alumnos configuran entornos multi-contenedor reales y los integran en pipelines CI/CD con Jenkins y GitHub Actions. Los profesores son ingenieros DevOps en activo. Duración 6 meses, tasa de empleabilidad del 100%.

Para aprender Docker Compose con proyectos reales y profesores en activo, el DevOps y Cloud Computing Full Stack Bootcamp de KeepCoding cubre el recorrido completo en 6 meses.



Conclusión

bootcamp devops

Docker Compose transforma Docker de una herramienta para contenedores individuales en una plataforma real para gestionar aplicaciones complejas. Su valor está en la simplicidad: toda la infraestructura en un archivo YAML, toda la aplicación levantada con un solo comando. DevOps y Cloud Computing Full Stack Bootcamp de KeepCoding.

Es el estándar en entornos de desarrollo profesionales y la puerta de entrada natural a la orquestación de contenedores antes de dar el salto a Kubernetes en producción.

Aprender Docker Compose bien es aprender a pensar en términos de servicios, dependencias y redes, que es exactamente el modelo mental que se necesita para trabajar con infraestructura cloud moderna.

La referencia oficial más completa sobre Docker Compose, incluyendo todas las claves del archivo YAML y los comandos disponibles, está en docs.docker.com/compose/.

Noticias recientes del mundo tech

¡CONVOCATORIA ABIERTA!

Bootcamp devops & cloud computing

Clases en Directo | Acceso a +600 empresas | Empleabilidad de 99,36%

Descárgate también el informe de tendencias en el mercado laboral 2026.

Fórmate con planes adaptados a tus objetivos y logra resultados en tiempo récord.
KeepCoding Bootcamps
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.