Docker Compose: Estructura básica.

Docker Compose: Estructura básica.

Docker Compose es una herramienta esencial para cualquiera que trabaje con contenedores Docker. Permite definir y ejecutar aplicaciones multicontenedor de manera sencilla, facilitando el manejo y despliegue de servicios interconectados. En este artículo, exploraremos la estructura básica de un archivo docker-compose.yml, los conceptos fundamentales que lo componen y ejemplos prácticos para comenzar a utilizar esta herramienta de manera efectiva.

¿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.

  1. Instala Docker siguiendo esta guía oficial: Instalación de Docker.
  2. 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
  1. 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.

Fuentes y lecturas recomendadas

Xose de la Paz

Más de 20 años transformando pasión en profesión. Experto en desarrollo Full Stack con una visión integral que abarca desde la gestión de servidores y redes hasta el diseño de interfaz. Soy un "todoterreno" tecnológico que cree en el aprendizaje continuo y la visión global de los proyectos. Entre despliegue y despliegue, me pierdo por el mundo con mi cámara al hombro.

2 respuestas a «Docker Compose: Estructura básica.»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.