Docker: Docker Compose
Docker Compose facilita la gestión de aplicaciones multicontenedor en Docker. Aprende su configuración y uso avanzado en este módulo.
Aprende Docker GRATIS y certifícateDocker Compose es una herramienta clave en el ecosistema Docker, diseñada para simplificar el proceso de definir y gestionar aplicaciones multicontenedor. En este módulo, exploraremos cómo configurar y utilizar Docker Compose para optimizar tu flujo de trabajo.
Introducción a Docker Compose
Docker Compose permite definir y ejecutar aplicaciones multicontenedor con un solo comando. Utiliza un archivo YAML para configurar los servicios de tu aplicación. Con Docker Compose, puedes gestionar contenedores de manera eficiente, escalándolos y actualizándolos según sea necesario.
Instalación de Docker Compose
Para instalar Docker Compose, sigue estos pasos:
- Descarga la versión más reciente:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.0.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- Aplica permisos ejecutables al binario:
sudo chmod +x /usr/local/bin/docker-compose
- Verifica la instalación:
docker-compose --version
Creación de un archivo docker-compose.yml
El archivo docker-compose.yml
es el corazón de Docker Compose. Define los servicios que componen tu aplicación. A continuación, un ejemplo básico:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
db:
image: mysql:8.4.2
environment:
MYSQL_ROOT_PASSWORD: example
Explicación del archivo
- version: Especifica la versión de Compose.
- services: Define los contenedores que se utilizarán.
- web: Servicio que utiliza la imagen de Nginx.
- db: Servicio que utiliza la imagen de MySQL con una variable de entorno para la contraseña de root.
Comandos básicos de Docker Compose
- Iniciar los servicios:
docker-compose up
- Iniciar los servicios en segundo plano:
docker-compose up -d
- Detener los servicios:
docker-compose down
- Escalar un servicio:
docker-compose up -d --scale web=3
Uso avanzado de Docker Compose
Volúmenes y redes
Docker Compose permite definir volúmenes y redes para mejorar la persistencia y la comunicación entre contenedores.
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- web_data:/var/www/html
networks:
- app_network
db:
image: mysql:8.4.2
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db_data:/var/lib/mysql
networks:
- app_network
volumes:
web_data:
db_data:
networks:
app_network:
Variables de entorno
Puedes utilizar un archivo .env
para gestionar variables de entorno:
MYSQL_ROOT_PASSWORD=example
Luego, referenciarlas en el archivo docker-compose.yml
:
version: '3.8'
services:
db:
image: mysql:8.4.2
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
Lecciones de este módulo de Docker
Lecciones de programación del módulo Docker Compose del curso de Docker.
Ejercicios de programación en este módulo de Docker
Evalúa tus conocimientos en Docker Compose con ejercicios de programación Docker Compose de tipo Test, Puzzle, Código y Proyecto con VSCode.