Tutorial de Docker Compose
Docker Compose es una herramienta que permite definir y ejecutar aplicaciones Docker multi-contenedor. Con ella podemos describir todos los servicios que componen nuestra aplicación en un archivo de configuración YAML y ejecutarlos todos juntos con un solo comando. Esto facilita el despliegue y la gestión de aplicaciones complejas.
Qué es Docker Compose
Docker Compose es una herramienta de Docker que nos permite:
- Definir servicios individuales en un solo archivo YAML.
- Gestionar múltiples contenedores como una sola aplicación.
- Iniciar y detener toda nuestra aplicación con un solo comando.
- Escalabilidad automática y fácil replicación de nuestra aplicación.
- Permite la construcción de aplicaciones con múltiples contenedores de Docker.
Cómo usar Docker Compose
Para usar Docker Compose, necesitamos tener instalado tanto Docker como Docker Compose. Para instalar Docker, consulte la documentación oficial de Docker. Para instalar Docker Compose, podemos seguir estos pasos:
- Descargar la última versión estable de Docker Compose con el siguiente comando de terminal:
- Permitir permisos de ejecución al archivo que acabamos de descargar:
- Verificar la instalación ejecutando el siguiente comando:
- El siguiente paso es crear un archivo YAML que describa la configuración de nuestra aplicación. Este archivo YAML debe llamarse "docker-compose.yaml" o "docker-compose.yml" y debe ubicarse en el directorio raíz de nuestra aplicación.
- Una vez que hayamos creado nuestro archivo YAML, podemos ejecutar nuestra aplicación con el siguiente comando:
sudo curl -L "https://github.com/docker/compose/releases/download/{VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose up
Ejemplos de Docker Compose
A continuación, se muestran ejemplos de varios servicios que pueden formar parte de un archivo YAML de Docker Compose:
Servicio de Web
Este es un ejemplo de un servicio de web que puede ser parte de un archivo YAML:
web:
build: .
ports:
- "80:80"
Este código definirá un servicio de web que se construirá a partir del archivo Dockerfile ubicado en el directorio raíz. El servicio estará en el puerto 80 y cualquier solicitud de ese puerto se redirigirá al puerto 80 del contenedor.
Servicio de Base de Datos
Este es un ejemplo de un servicio de base de datos que puede ser parte de un archivo YAML:
db:
image: postgres
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: example
Este código definirá un servicio de base de datos que se basa en la imagen oficial de PostgreSQL de Docker Hub. Se configuran dos variables de entorno para el usuario y la contraseña de la base de datos.
Conclusión
Gracias al uso de Docker Compose, podemos simplificar el proceso de gestión y despliegue de aplicaciones complejas. Al describir nuestros servicios en un archivo YAML, podemos iniciar y detenerlos todos juntos con un solo comando. Esto nos permite enfocarnos más en el desarrollo y menos en la configuración de la infraestructura.
Preguntas frecuentes
¿Docker Compose es gratuito?
Sí, Docker Compose es gratuito y de código abierto. Se distribuye bajo la licencia Apache 2.0.
¿Docker Compose es necesario si solo tengo un contenedor de Docker?
No necesitas Docker Compose si solo tienes un contenedor de Docker, aunque podría ser útil si tienes planes futuros de ampliar tu aplicación. Docker Compose es más útil cuando tienes varios contenedores que interactúan entre sí.
¿Cómo puedo escalar mi aplicación con Docker Compose?
Puedes escalar tus servicios usando el siguiente comando:
docker-compose up --scale servicio=N
Donde 'servicio' es el nombre del servicio que deseas escalar y 'N' es la cantidad de replicas que deseas crear.
¿Cómo detengo mis servicios de Docker Compose?
Puedes detener tus servicios de Docker Compose con el siguiente comando:
docker-compose down
Este comando detendrá y eliminará los contenedores, redes y volúmenes creados por docker-compose up.
Deja una respuesta