AI models en Docker Compose

Intermedio
Docker
Docker
Actualizado: 13/08/2025

Compose models

Los Compose models representan una característica moderna en Docker Compose que permite la integración nativa de modelos de IA generativa directamente en el archivo de configuración. Esta funcionalidad simplifica enormemente el despliegue y gestión de aplicaciones que requieren capacidades de inteligencia artificial.

Esta nueva característica introduce una sección específica en compose.yaml que permite definir y configurar modelos de IA como un recurso de primera clase, similar a como se definen services, volumes o networks. Los modelos se declaran de forma declarativa y pueden ser consumidos por los servicios de la aplicación.

Estructura básica de models

La sección models se define en el nivel superior del archivo compose.yaml, junto con services, volumes y networks:

services:
  web:
    image: nginx:1.29
    ports:
      - "8080:80"

models:
  llama-model:
    image: ollama/llama3.2:latest
    runtime: ollama

Los parámetros principales de configuración incluyen:

  • image: especifica la imagen del modelo de IA que se utilizará
  • runtime: define el motor de ejecución para el modelo (ollama, pytorch, tensorflow)
  • ports: puertos de exposición para la API del modelo
  • environment: variables de configuración específicas del modelo

Runtimes soportados

Docker Compose models soporta varios runtimes de IA populares:

Runtime Ollama para modelos de lenguaje:

models:
  chat-model:
    image: ollama/codellama:7b
    runtime: ollama
    ports:
      - "11434:11434"
    environment:
      - OLLAMA_HOST=0.0.0.0

Runtime PyTorch para modelos personalizados:

models:
  custom-model:
    image: pytorch/pytorch:2.1.0-cuda11.8-cudnn8-runtime
    runtime: pytorch
    volumes:
      - ./models:/workspace/models

Consumo de modelos desde services

Los servicios pueden consumir los modelos definidos mediante referencias directas. El motor de Compose establece automáticamente la conectividad de red y las dependencias necesarias:

services:
  api:
    image: python:3.13
    depends_on:
      - llama-model
    environment:
      - MODEL_URL=http://llama-model:11434/api/generate
    volumes:
      - ./app:/app
    command: python /app/main.py

models:
  llama-model:
    image: ollama/llama3.2:latest
    runtime: ollama
    ports:
      - "11434:11434"

Configuración de recursos

Los modelos de IA suelen requerir recursos computacionales específicos, especialmente memoria y GPU. Compose models permite configurar estos requisitos:

models:
  large-model:
    image: ollama/llama3.2:70b
    runtime: ollama
    deploy:
      resources:
        reservations:
          memory: 16G
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

Gestión del ciclo de vida

Los modelos definidos en compose.yaml siguen el mismo ciclo de vida que los services tradicionales:

# Iniciar todos los servicios y modelos
docker compose up -d

# Ver el estado de modelos y servicios
docker compose ps

# Detener solo los modelos
docker compose stop llama-model

# Logs específicos del modelo
docker compose logs llama-model

Ejemplo práctico completo

Un caso de uso típico combina una aplicación web con un modelo de chat:

services:
  frontend:
    image: node:24
    ports:
      - "3000:3000"
    volumes:
      - ./frontend:/app
    working_dir: /app
    command: npm start
    depends_on:
      - backend

  backend:
    image: python:3.13
    ports:
      - "8000:8000"
    volumes:
      - ./backend:/app
    working_dir: /app
    environment:
      - MODEL_ENDPOINT=http://chat-model:11434
    depends_on:
      - chat-model
    command: python app.py

models:
  chat-model:
    image: ollama/llama3.2:latest
    runtime: ollama
    ports:
      - "11434:11434"
    environment:
      - OLLAMA_MODELS=/models
    volumes:
      - model_data:/models

volumes:
  model_data:

Esta funcionalidad representa un paso significativo en la democratización de la IA, permitiendo a los desarrolladores integrar modelos generativos en sus aplicaciones con la misma simplicidad que cualquier otro componente de infraestructura.

Fuentes y referencias

Documentación oficial y recursos externos para profundizar en Docker

Documentación oficial de Docker
Alan Sastre - Autor del tutorial

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Docker es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.

Más tutoriales de Docker

Explora más contenido relacionado con Docker y continúa aprendiendo con nuestros tutoriales gratuitos.

Aprendizajes de esta lección

  • Comprender la estructura y configuración básica de la sección models en Docker Compose.
  • Identificar los runtimes soportados para modelos de IA y su configuración.
  • Aprender a consumir modelos de IA desde servicios definidos en Docker Compose.
  • Configurar recursos específicos como memoria y GPU para modelos de IA.
  • Gestionar el ciclo de vida de los modelos junto con los servicios en Docker Compose.