Cómo usar Docker Compose para aplicaciones multicontendor

watch 4m, 56s
views 2

10:31, 21.05.2026

Contenido del artículo
arrow

  • 1. Herramientas para la gestión de aplicaciones con múltiples contenedores
  • 1.1 Descripción general de Podman
  • 1.1.1 Cómo instalar Podman
  • 1.2 Introducción a podman-docker
  • 1.2.1 Instalación de podman-docker
  • 1.3 Descripción general de docker-compose
  • 1.3.1 Cómo instalar docker-compose
  • Creación de una aplicación con múltiples contenedores
  • 2.1 Creación del archivo compose.yml
  • 2.1.1 Definición de servicios
  • 2.1.2 Configuración de redes
  • 2.1.3 Ejemplo de archivo compose.yml
  • 2.2 Despliegue de aplicaciones multicontainer
  • Información legal

1. Herramientas para la gestión de aplicaciones con múltiples contenedores

Las aplicaciones modernas rara vez se ejecutan en un solo servicio o en un solo contenedor. En cambio, suelen basarse en varios servicios interconectados, como servidores web, bases de datos y cachés. La gestión manual de estos componentes puede resultar agotadora y propensa a errores. Afortunadamente, herramientas como Docker Compose simplifican el proceso de definición, implementación y gestión de aplicaciones con múltiples contenedores.

En este artículo analizaremos varias herramientas para gestionar entornos con múltiples contenedores, repasaremos los pasos para crear e implementar un proyecto con Docker Compose, y discutiremos las mejores prácticas para gestionar eficazmente tus servicios.

1.1 Descripción general de Podman

Podman, o Pod Manager Tool, es un motor de contenedores de código abierto diseñado como sustituto directo de Docker. Ofrece una interfaz de línea de comandos para gestionar contenedores.

Podman no necesita un daemon para funcionar y es compatible con systemd, lo que permite gestionar contenedores a través de módulos de systemd (y ejecutar systemd dentro de los contenedores).

Ayuda al usuario a organizar los contenedores en pods que comparten una misma red y recursos.

1.1.1 Cómo instalar Podman

Para instalar Podman en un sistema basado en Linux:

sudo apt update sudo apt install -y podman

Para macOS y Windows, puedes utilizar el instalador de Podman Desktop, disponible en el sitio web oficial.

1.2 Introducción a podman-docker

podman-docker — es una capa de compatibilidad que permite utilizar los comandos de la CLI de Docker con Podman. Esto resulta especialmente útil si vienes de Docker o trabajas con herramientas que esperan comandos de Docker.

1.2.1 Instalación de podman-docker

Instala podman-docker para habilitar la compatibilidad con los comandos de Docker:

sudo apt install -y podman-docker

Tras la instalación, comandos como docker run, docker build, o docker-compose serán interpretados por Podman.

1.3 Descripción general de docker-compose

Docker Compose es una herramienta para ejecutar aplicaciones Docker con múltiples contenedores mediante un sencillo archivo de configuración YAML. Permite describir todos tus servicios, redes y volúmenes en un solo archivo y gestionarlos conjuntamente. Docker Compose admite varios entornos aislados en un mismo host y cambios entre ellos. Esto significa que, con esta herramienta, puedes recrear los contenedores que hayan sufrido cambios sin modificar la propia aplicación multicontainer.

1.3.1 Cómo instalar docker-compose

Puedes instalar Docker Compose mediante el plugin oficial de la CLI de Docker:

sudo apt update sudo apt install docker-compose-plugin

O para una instalación independiente (obsoleta en favor del plugin):

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-
compose-$(uname -s)-$(uname -m)" \ 
-o /usr/local/bin/docker-compose 
sudo chmod +x /usr/local/bin/docker-compose

Comprobación de la instalación:

docker compose version

Creación de una aplicación con múltiples contenedores

Creemos una sencilla aplicación web compuesta por un servidor web (Nginx), un backend (Flask) y una base de datos (PostgreSQL).

2.1 Creación del archivo compose.yml

El archivo compose.yml (anteriormente docker-compose.yml) contiene todas las definiciones de servicios.

2.1.1 Definición de servicios

Cada servicio representa un contenedor. Puede especificar la imagen, el contexto de compilación, los puertos, los volúmenes y las variables de entorno.

2.1.2 Configuración de redes

Compose permite crear redes propias para que los contenedores puedan comunicarse entre sí utilizando los nombres de sus servicios.

2.1.3 Ejemplo de archivo compose.yml

version: "3.9" 
services: 
   web: 
     build: ./web 
     puertos:
- "80:80" 
     depends on:
- backend


backend: build: ./backend 
environment:
- DATABASE_URL=postgres://user:password@db:5432/mydb 
depends_on:
- db


db: 
  image: postgres:15 
  restart: always 
  environment: 
    POSTGRES_DB: mydb 
    POSTGRES_USER: user 
    POSTGRES_PASSWORD: password 
  volumes:
- db_data:/var/lib/postgresql/data
volumes: 
  db_data:

En esta configuración:

  • web es el frontend, gestionado por Nginx.
  • backend es un servidor API basado en Flask.
  • db es un contenedor PostgreSQL con almacenamiento persistente.

2.2 Despliegue de aplicaciones multicontainer

Una vez que tu archivo compose.yml esté listo, despliega la aplicación con:

docker compose up --build

Este comando crea las imágenes (si es necesario) e inicia todos los servicios. Puedes detener la aplicación con:

docker compose down

Para ejecutar los servicios en segundo plano:

docker compose up -d

Gestión de una aplicación multicontainer

Docker Compose también simplifica la gestión de tus servicios. Funcionalidades:

  • Escalado de servicios:
docker compose up -d --scale backend=3

Esto inicia tres instancias del servicio backend (útil para el equilibrio de carga).

  • Visualización de registros:
docker compose logs -f
  • Comprobación del estado del servicio:
docker compose ps
  • Recompilación de imágenes:
docker compose build
  • Ejecución de comandos puntuales:
docker compose exec backend flask db upgrade

Docker Compose te permite gestionar el ciclo de vida de tu aplicación de forma predecible y repetible.

Con Docker Compose, la gestión de aplicaciones con múltiples contenedores se vuelve mucho más sencilla, especialmente en casos en los que se trata de entornos que requieren una configuración y desmontaje secuenciales. Tanto si estás desarrollando localmente como si te estás preparando para la producción, Compose te permite definir toda la arquitectura de tu aplicación en un solo archivo y mantenerlo todo bajo control.

Información legal

Docker es una marca comercial de Docker, Inc. Podman es un proyecto de código abierto respaldado por Red Hat y otras organizaciones. Todo el software mencionado está sujeto a las licencias de código abierto correspondientes.

Al implementar aplicaciones en entornos de producción, asegúrate de cumplir con los requisitos de licencia de todas las imágenes y dependencias que utilices.

Compartir

¿Te ha resultado útil este artículo?

Ofertas populares de VPS

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 8192 Linux

25.85 /mes

/mes

Facturado cada 12 meses

-22.2%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
50 GB SSD
Bandwidth
Bandwidth
300 GB
KVM-SSD 4096 HK Linux

33 /mes

/mes

Facturado cada 12 meses

-5%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
40 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 1024 Windows

12.1 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
2 Xeon Cores
RAM
RAM
512 MB
Space
Space
10 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 512 Linux

5.2 /mes

/mes

Facturado cada 12 meses

-9.3%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
150 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 16384 Windows

53.99 /mes

/mes

Facturado cada 12 meses

-9.7%

CPU
CPU
10 Epyc Cores
RAM
RAM
64 GB
Space
Space
300 GB NVMe
Bandwidth
Bandwidth
Unlimited
wKVM-NVMe 65536 Windows

139.49 /mes

/mes

Facturado cada 12 meses

-29.4%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
30 GB SSD
Bandwidth
Bandwidth
2 TB
KVM-SSD 2048 Metered Linux

17 /mes

/mes

Facturado cada 12 meses

-15.3%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
75 GB SSD
Bandwidth
Bandwidth
40 Mbps
DDoS Protected SSD-wKVM 2048 Windows

54 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
8 Epyc Cores
RAM
RAM
32 GB
Space
Space
200 GB NVMe
Bandwidth
Bandwidth
Unlimited
KVM-NVMe 32768 Linux

70.49 /mes

/mes

Facturado cada 12 meses

-5.3%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
60 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 2048 Windows

11.66 /mes

/mes

Facturado cada 12 meses

Otros artículos sobre este tema

cookie

¿Acepta las cookies y la política de privacidad?

Utilizamos cookies para asegurar que damos la mejor experiencia en nuestro sitio web. Si continúa sin cambiar la configuración, asumiremos que acepta recibir todas las cookies del sitio web HostZealot.