Introducción a Docker Compose
Docker Compose es una herramienta que te permite definir y ejecutar aplicaciones Docker de múltiples contenedores. Simplifica el proceso de gestión y orquestación de múltiples contenedores Docker al proporcionar una forma declarativa de definir los servicios, redes y volúmenes de la aplicación.
¿Qué es Docker Compose?
Docker Compose es un archivo de configuración basado en YAML que describe los servicios, redes y volúmenes que componen una aplicación de múltiples contenedores. Este archivo de configuración se puede utilizar para crear, iniciar, detener y gestionar toda la pila de la aplicación con un solo comando.
Beneficios de usar Docker Compose
-
Implementación de aplicaciones simplificada: Docker Compose te permite definir toda la pila de la aplicación en un solo archivo, lo que facilita la implementación y gestión de la aplicación en diferentes entornos.
-
Entorno consistente: Al definir los servicios y dependencias de la aplicación en un archivo Compose, puedes asegurarte de que los entornos de desarrollo, prueba y producción sean consistentes, lo que reduce el riesgo de problemas de "funciona en mi máquina".
-
Escalabilidad: Docker Compose facilita la escalabilidad de servicios individuales dentro de la aplicación modificando el archivo Compose y ejecutando un solo comando.
-
Mejora de la colaboración: El archivo Compose sirve como un punto central de referencia para la aplicación, lo que facilita que los miembros del equipo comprendan y colaboren en el proyecto.
Primeros pasos con Docker Compose
Para usar Docker Compose, debes tener Docker instalado en tu sistema. Una vez que hayas instalado Docker, puedes crear un archivo Compose y usar la herramienta de línea de comandos docker-compose para gestionar tu aplicación.
Este es un ejemplo de archivo Compose para una aplicación web simple con un servidor web y una base de datos:
version: "3"
services:
web:
build: .
ports:
- "8080:80"
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_DATABASE: myapp
MYSQL_USER: myapp
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: supersecret
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
En este ejemplo, el archivo Compose define dos servicios: un servidor web y una base de datos MySQL. El servicio web se construye a partir de un Dockerfile en el directorio actual, mientras que el servicio db utiliza la imagen oficial de MySQL. Los servicios están conectados a través de una red, y se define un volumen de base de datos para persistir los datos.
Para iniciar la aplicación, puedes ejecutar el siguiente comando en el mismo directorio que el archivo Compose:
docker-compose up -d
Esto creará e iniciará los contenedores definidos en el archivo Compose en modo desatendido.