Guía completa para usar Docker Compose

Última actualización:
Autor:
  • Docker Compose permite gestionar múltiples contenedores mediante un único archivo YAML.
  • Facilita la configuración de servicios, redes y volúmenes en entornos de desarrollo y producción.
  • Ofrece comandos sencillos para desplegar, escalar y administrar aplicaciones basadas en contenedores.
  • Mejora la automatización y reproducibilidad del entorno, optimizando la gestión de aplicaciones.

Docker Compose en acción

Docker Compose es una herramienta invaluable para cualquier desarrollador o administrador de sistemas que trabaje con contenedores Docker. Permite definir, gestionar y ejecutar aplicaciones multi-contenedor con facilidad, utilizando archivos YAML para estructurar los servicios necesarios. Ya sea en entornos de desarrollo, prueba o producción, Docker Compose simplifica la configuración y despliegue de aplicaciones, optimizando el flujo de trabajo y la escalabilidad.

A lo largo de este artículo, exploraremos en profundidad cómo usar Docker Compose, desde su instalación hasta la implementación de proyectos complejos. Aprenderás a estructurar correctamente un archivo de configuración, definir servicios, redes, volúmenes y gestionar eficientemente tus aplicaciones con los comandos esenciales.

¿Qué es Docker Compose y por qué es útil?

docker compose

Docker Compose es una herramienta oficial de Docker que permite gestionar múltiples contenedores como una única unidad coordinada. En lugar de ejecutar manualmente varios contenedores y conectarlos entre sí, Compose permite definir su configuración en un único archivo YAML, lo que facilita la automatización y reproducibilidad de entornos.

Entre sus principales ventajas destacan:

  • Automatización del despliegue: Se evita la necesidad de ejecutar múltiples comandos manualmente.
  • Facilidad de mantenimiento: Centraliza la configuración y simplifica su lectura y modificación.
  • Compatibilidad con entornos de desarrollo y producción: Permite definir configuraciones específicas para cada caso.
  • Escalabilidad: Es fácil aumentar o disminuir el número de instancias de un servicio.

Instalación de Docker Compose

Antes de comenzar a usar Docker Compose, es necesario instalarlo en tu sistema. Existen diferentes métodos dependiendo del sistema operativo.

Instalación en Linux

En la mayoría de distribuciones basadas en Debian o Ubuntu, puedes instalar Docker Compose ejecutando:

sudo apt update
sudo apt install docker-compose

Para verificar la instalación, usa:

docker-compose --version

Instalación en macOS

Si tienes Docker Desktop instalado, Docker Compose ya viene incluido. Puedes verificarlo con el mismo comando:

docker-compose --version

Instalación en Windows

En Windows, puedes disfrutar de Docker Compose con Docker Desktop. La instalación es simple, solo descarga e instala Docker Desktop desde su página oficial.

  User Interaction-Aware CPU Power Management en Windows 11: cómo funciona y por qué puede mejorar la autonomía

Cómo funciona Docker Compose

Docker Compose utiliza un archivo YAML para definir los servicios, redes y volúmenes que necesita una aplicación. Su sintaxis clara y estructurada facilita la gestión de entornos.

Ejemplo de un archivo docker-compose.yaml

Veamos un ejemplo básico que define una aplicación con un servidor web y una base de datos:

version: '3.8'
services:
  web:
    image: nginx
    ports:
      - "80:80"
  db:
    image: postgres
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: secret

Este archivo configura un servicio web basado en Nginx y una base de datos PostgreSQL con credenciales predefinidas.

Definición de Servicios en Docker Compose

En Docker Compose, cada aplicación se divide en servicios. Cada servicio es un contenedor que se ejecuta independientemente, pero que puede interactuar con otros componentes.

Parámetros comunes en servicios

  • image: Define la imagen de Docker a usar.
  • build: Permite construir una imagen desde un Dockerfile.
  • ports: Expone puertos del contenedor al host.
  • volumes: Define volúmenes para persistencia de datos.
  • depends_on: Declara dependencias entre servicios.

Ejecutando una aplicación con Docker Compose

Una vez creado el archivo docker-compose.yml, podemos ejecutar la aplicación con el siguiente comando:

docker-compose up -d

El parámetro -d ejecuta los contenedores en segundo plano.

Para detener la aplicación y eliminar los contenedores:

docker-compose down

Si experimentas problemas, es recomendable consultar algunas soluciones comunes al error de enumeración de objetos en el contenedor. Esto puede ser útil para depurar el entorno de Docker.

Gestión de Volúmenes y Redes

Docker Compose permite definir volúmenes y redes para mejorar la gestión de los datos y la comunicación interna entre contenedores.

Ejemplo de configuración de volúmenes:

volumes:
  db-data:

Ejemplo de redes personalizadas:

networks:
  backend:

Gestión de redes y volúmenes con Docker Compose

Además, si deseas mejorar la gestión de aplicaciones de forma más sofisticada, considera explorar cómo Akamai App lleva la gestión de aplicaciones en Kubernetes a otro nivel.

Escalabilidad con Docker Compose

Para escalar instancias de un servicio, basta con usar:

docker-compose up --scale web=3

Esto crea tres instancias del servicio web.

  Descubre cómo aprender programación con PSeInt

Docker Compose simplifica enormemente la gestión de aplicaciones basadas en Docker al centralizar la configuración en un único archivo YAML. Su capacidad para definir múltiples contenedores, gestionar redes, volúmenes y escalar servicios lo convierte en una herramienta imprescindible para el desarrollo y despliegue de aplicaciones modernas. Si aún no lo has probado, es el momento perfecto para comenzar a usarlo y optimizar tu flujo de trabajo.

formatos opendocument-8
Artículo relacionado:
Todo sobre los formatos OpenDocument y su importancia

Deja un comentario