Docker Compose es una herramienta que facilita la gestión de aplicaciones multi-contenedor en Docker. Gracias a su archivo de configuración docker-compose.yml, puedes definir y ejecutar todos los componentes necesarios para poner en marcha una aplicación sencilla o compleja. En este artículo, aprenderemos a crear un primer ejemplo práctico de un archivo docker-compose.yml que nos ayudará a entender los conceptos fundamentales de Docker Compose.
¿Qué es Docker Compose?
Docker Compose es una herramienta que permite definir y ejecutar aplicaciones compuestas por múltiples contenedores. A través de un archivo de configuración en formato YAML, se pueden especificar los servicios, redes y volúmenes que componen la aplicación. Esto es particularmente útil para desarrollos y entornos de pruebas, donde la replicación del entorno de producción es clave.
Instalación de Docker y Docker Compose
Antes de comenzar a trabajar con Docker Compose, asegúrate de tener Docker instalado en tu máquina. La instalación incluye Docker Compose en versiones recientes. Para verificar si tienes Docker y Docker Compose correctamente instalados, utiliza los siguientes comandos:
docker --version
docker-compose --version
Si no tienes Docker instalado, puedes seguir las instrucciones en la documentación oficial de Docker.
Creando tu primer archivo docker-compose.yml
Comencemos creando un archivo básico docker-compose.yml que ejecutará una aplicación web simple utilizando Nginx. Este será un ejemplo ideal para entender cómo funciona la estructura del archivo y cómo se levantan los servicios.
Estructura del archivo docker-compose.yml
A continuación, te mostramos la estructura del archivo docker-compose.yml que vamos a crear:
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
Descripción de cada sección
- version: Especifica la versión del formato del archivo YAML que estás utilizando (en este caso, ‘3.8’).
- services: Define los servicios que conforman la aplicación. En este caso, solo hay un servicio llamado
web. - image: Especifica la imagen de Docker que se utilizará. Aquí usamos
nginx:alpine, que es una versión ligera de Nginx. - ports: Mapea el puerto 80 del contenedor al puerto 8080 de tu máquina local.
- volumes: Permite enlazar el directorio local
./htmlal directorio donde Nginx busca los archivos HTML.
Creando la estructura de archivos
Ahora, dentro de tu directorio de trabajo, crea una carpeta llamada html. En esta carpeta, coloca un archivo llamado index.html con el siguiente contenido:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Hola Mundo desde Nginx</title>
</head>
<body>
<h1>¡Hola Mundo! Bienvenido a Nginx en Docker Compose.</h1>
</body>
</html>
Ejecución de la aplicación
Con el archivo docker-compose.yml y el contenido HTML preparados, es momento de levantar la aplicación. Abre tu terminal, navega al directorio donde guardaste el archivo docker-compose.yml y ejecuta el siguiente comando:
docker-compose up
Al ejecutar el comando anterior, Docker Compose descargará la imagen de Nginx si no está presente localmente, creará el contenedor y levantará el servicio. Verás en la terminal los logs de Nginx.
Una vez que todo esté en marcha, abre tu navegador y dirígete a http://localhost:8080. Deberías ver el mensaje “¡Hola Mundo! Bienvenido a Nginx en Docker Compose.”.
Conclusiones
Docker Compose simplifica la orquestación de aplicaciones que requieren múltiples contenedores y recursos. En este tutorial, hemos creado un archivo docker-compose.yml sencillo y hemos levantado un servidor Nginx que sirve contenido estático. Este es solo el comienzo y puedes extender esto para manejar bases de datos, servicios de backend, y más.
Para más información sobre Docker y Docker Compose, no dudes en consultar nuestros otros artículos relacionados donde profundizamos en otras características y comandos.

Deja una respuesta