Conceptos Básicos de Docker Compose
Introducción a Docker Compose
Docker Compose es una herramienta potente para la orquestación de contenedores, que permite a los desarrolladores definir y gestionar aplicaciones multicontenedor mediante un único archivo de configuración. Simplifica el proceso de ejecutar arquitecturas de aplicaciones complejas al permitir describir servicios, redes y volúmenes de forma declarativa.
Conceptos Fundamentales y Arquitectura
Docker Compose utiliza archivos YAML para configurar los servicios de la aplicación, ofreciendo un enfoque optimizado para la configuración de servicios de contenedores. El archivo de configuración principal suele llamarse docker-compose.yml.
graph TD
A[Docker Compose] --> B[Configuración YAML]
B --> C[Definiciones de Servicios]
B --> D[Configuración de Redes]
B --> E[Asignaciones de Volúmenes]
Estructura del Archivo de Configuración
Una configuración típica de Docker Compose incluye elementos clave:
| Elemento |
Descripción |
Ejemplo |
| versión |
Versión del archivo de Compose |
version: '3.8' |
| servicios |
Definiciones de contenedores |
Múltiples configuraciones de servicios |
| redes |
Configuración de redes personalizadas |
Redes puente, redes host |
| volúmenes |
Almacenamiento de datos persistentes |
Volúmenes con nombre o montados en host |
Ejemplo Práctico: Configuración de una Aplicación Web
Aquí hay una configuración completa de Docker Compose para una aplicación web típica:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./website:/usr/share/nginx/html
database:
image: postgres:13
environment:
POSTGRES_PASSWORD: secretpassword
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
Operaciones en la Línea de Comandos
Comandos esenciales de Docker Compose para gestionar aplicaciones multicontenedor:
## Iniciar los servicios definidos en docker-compose.yml
docker-compose up -d
## Detener y eliminar los contenedores
docker-compose down
## Ver los contenedores en ejecución
docker-compose ps
## Ver los registros de los servicios
docker-compose logs web
Gestión de Dependencias de Servicios
Docker Compose permite definir dependencias de servicios para controlar la secuencia de inicio:
services:
web:
depends_on:
- database
restart: on-failure
Esta configuración asegura que el servicio de base de datos se inicie antes que el servicio web, con capacidades de reinicio automático.