Docker como automatización

Skip to content

Este es un texto traducido automáticamente que puede contener errores!

Docker simplifica el despliegue de aplicaciones. En lugar de instalar y configurar software manualmente en un servidor, defines todo en archivos de configuración. El resultado es reproducible, portátil y rápido de configurar.

¿Qué es Docker Compose?

Con Docker Compose, defines múltiples servicios en un solo archivo (docker-compose.yml). Cada servicio es un contenedor con su propia configuración.

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"

Un comando configura todo:

docker compose up -d
# Starter tjenestene i bakgrunnen.
# Inicia los servicios en segundo plano.

¿Necesitas mover el servicio a otro servidor? Copia el archivo y ejecuta el mismo comando. Todo es idéntico.

¿Por qué es esto automatización?

Piensa en la diferencia:

Configuración manual Con Docker Compose
Instalar Nginx manualmente image: nginx:latest
Configurar puertos ports: "80:80"
Instalar Grafana manualmente image: grafana/grafana:latest
Documentar todos los pasos Todo está documentado en el archivo .yml
Repetir todo en el siguiente servidor docker compose up -d

El archivo Docker Compose es la documentación. Describe exactamente qué servicios se están ejecutando, qué puertos están utilizando y cómo están configurados.

Comandos Docker útiles

Comando Lo que hace
docker compose up -d Inicia todos los servicios en segundo plano
docker compose down Detiene y elimina todos los contenedores
docker compose logs -f Sigue los registros en tiempo real
docker compose pull Obtiene la última versión de todas las imágenes
docker compose restart Reinicia todos los servicios
docker ps Muestra los contenedores en ejecución

Volumes: Guarda datos fuera del contenedor

Los contenedores son temporales. Si eliminas un contenedor, todo su contenido desaparece. Para mantener los datos, utilizamos volúmenes:

services:
  database:
    image: postgres:16
    ports:
      - "5432:5432"
    environment:
      POSTGRES_PASSWORD: hemmelig # Contraseña de PostgreSQL
    volumes:
      - db-data:/var/lib/postgresql/data

volumes:
  db-data:

Aquí se guardan los archivos de la base de datos en un volumen llamado db-data. Incluso si elimina y vuelve a crear el contenedor, los datos seguirán ahí.

Actualización de servicios

Actualizar un servicio de Docker es sencillo:

# Obtener la última versión
docker compose pull

# Reiniciar con la nueva versión
docker compose up -d

Compara esto con la actualización de software instalado manualmente, donde quizás tengas que descargar, configurar y esperar que no se rompa nada.

Easy Tarea 1 - Configurar Nginx con Docker Compose

Crea un docker-compose.yml que ejecute un servidor web Nginx:

  1. Crea una nueva carpeta y crea el archivo docker-compose.yml
  2. Define un servicio con image: nginx:latest en el puerto 80
  3. Ejecuta docker compose up -d
  4. Visita http://localhost en el navegador

Medium Tarea 2 - Agregar un servicio

Extiende docker-compose.yml de la tarea 1 con un servicio adicional. Por ejemplo:

Inicia todo con docker compose up -d y verifica que ambos servicios se estén ejecutando simultáneamente.

Resumen

  • Docker Compose te permite definir múltiples servicios en un solo archivo
  • El archivo Compose es tanto configuración como documentación
  • Volúmenes almacenan datos fuera del contenedor para que sobrevivan a los reinicios
  • La actualización es docker compose pull + docker compose up -d
  • Docker facilita mover servicios entre servidores