¿Qué es Docker Compose?
Docker Compose es una herramienta presentada por Docker que permite definir y ejecutar entornos de aplicación en contenedores utilizando un archivo de configuración en formato YAML. Gracias a esta herramienta, se puede orquestar un conjunto de servicios que se comunicarán entre sí, reduciendo así la complejidad de las configuraciones manuales.
Instalación de Docker y Docker Compose
Para usar Docker Compose, primero necesitas tener Docker instalado. A continuación, te mostramos brevemente cómo instalar ambas herramientas en un sistema operativo basado en Linux.
- Instala Docker siguiendo esta guía oficial: Instalación de Docker.
- Para instalar Docker Compose, ejecuta el siguiente comando en la terminal:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- Asegúrate de dar permisos de ejecución:
sudo chmod +x /usr/local/bin/docker-compose
Puedes comprobar que la instalación fue exitosa ejecutando:
docker-compose --version
Estructura básica del archivo docker-compose.yml
El archivo docker-compose.yml se utiliza para definir los servicios, redes y volúmenes necesarios para tu aplicación. Aquí te mostramos la estructura básica de dicho archivo:
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
Desglose de la estructura
- version: Especifica la versión de Docker Compose que se está utilizando.
- services: Contiene la definición de los diferentes contenedores que componen la aplicación.
- web: Es un servicio que utiliza la imagen nginx. Esto se traduce en que un contenedor Nginx ejecutará el servicio web.
- ports: Muestra cómo se mapearán los puertos del contenedor a los puertos del host.
- db: Define un servicio de base de datos que utiliza la imagen de mysql.
- environment: Permite pasar variables de entorno al contenedor.
Ejemplo práctico: Aplicación web simple
Veamos un ejemplo más completo, que implemente un entorno de aplicación web sencillo utilizando Nginx y MySQL:
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
networks:
- frontend
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: secret
networks:
- backend
networks:
frontend:
backend:
Descripción del ejemplo
En este ejemplo:
- Se define un servicio web que corre Nginx y está mapeado al puerto 8080 del host.
- La opción volumes se utiliza para enlazar un directorio local ./html al directorio del contenedor donde Nginx muestra los archivos HTML.
- Un servicio db que ejecuta MariaDB con una contraseña de root establecida en las variables de entorno.
- Se definen dos redes: frontend y backend. Esto permite isolar la comunicación entre servicios si es necesario.
Ejecutando Docker Compose
Una vez que tengas tu archivo docker-compose.yml configurado, puedes ejecutar tus servicios fácilmente utilizando el siguiente comando en el directorio que contiene el archivo:
docker-compose up
Este comando construirá y levantará todos los servicios definidos, listos para ser utilizados. Para detener los servicios, simplemente ejecuta:
docker-compose down
Conclusiones
Docker Compose es una herramienta poderosa que facilita el manejo de aplicaciones compuestas por múltiples servicios. Su estructura basada en YAML permite a los desarrolladores definir rápidamente la arquitectura de sus aplicaciones. Con nuestra introducción a la estructura básica de Docker Compose, ahora puedes comenzar a crear tus propios entornos de desarrollo y producción de manera eficiente.

Deja una respuesta