Docker Model Runner vs Ollama: ¿Cuál elegir?
Compare Docker Model Runner y Ollama para LLM local
Running large language models (LLMs) locally ha ganado popularidad en los últimos tiempos por razones de privacidad, control de costos y capacidades fuera de línea. El panorama cambió significativamente en abril de 2025 cuando Docker introdujo Docker Model Runner (DMR), su solución oficial para la implementación de modelos de IA.
Ahora tres enfoques compiten por el interés de los desarrolladores: el Model Runner nativo de Docker, soluciones de terceros basadas en contenedores (vLLM, TGI) y la plataforma independiente Ollama.
Entendiendo los Model Runners de Docker
Los runners de modelos basados en Docker utilizan la contenerización para empaquetar motores de inferencia de LLM junto con sus dependencias. El panorama incluye tanto la solución oficial de Docker como marcos de terceros.
Docker Model Runner (DMR) - Solución Oficial
En abril de 2025, Docker introdujo Docker Model Runner (DMR), un producto oficial diseñado para simplificar la ejecución de modelos de IA localmente utilizando la infraestructura de Docker. Esto representa el compromiso de Docker con hacer la implementación de modelos de IA tan sencilla como la implementación de contenedores.
Funciones clave de DMR:
- Integración nativa con Docker: Utiliza comandos familiares de Docker (
docker model pull
,docker model run
,docker model package
) - Empaquetado como OCI Artifact: Los modelos se empaquetan como OCI Artifacts, permitiendo su distribución a través de Docker Hub y otros registros
- API compatible con OpenAI: Reemplazo directo para puntos finales de OpenAI, simplificando la integración
- Aceleración con GPU: Soporte nativo de GPU sin configuración compleja de nvidia-docker
- Soporte del formato GGUF: Funciona con formatos populares de modelos cuantizados
- Integración con Docker Compose: Configurar y desplegar modelos fácilmente con herramientas estándar de Docker
- Soporte de Testcontainers: Integración sin problemas con marcos de pruebas
Instalación:
- Docker Desktop: Habilitar a través de la pestaña de IA en la configuración
- Docker Engine: Instalar el paquete
docker-model-plugin
Ejemplo de uso:
# Descargar un modelo desde Docker Hub
docker model pull ai/smollm2
# Ejecutar inferencia
docker model run ai/smollm2 "Explica Docker Model Runner"
# Empaquetar modelo personalizado
docker model package --gguf /path/to/model.gguf --push myorg/mymodel:latest
DMR colabora con Google, Hugging Face y VMware Tanzu para expandir el ecosistema de modelos de IA disponible a través de Docker Hub. Si eres nuevo en Docker o necesitas un recordatorio sobre comandos de Docker, nuestro Docker Cheatsheet proporciona una guía completa sobre operaciones esenciales de Docker.
Soluciones de terceros basadas en Docker
Más allá de DMR, el ecosistema incluye marcos establecidos:
- Contenedores vLLM: Servidor de inferencia de alto rendimiento optimizado para procesamiento por lotes
- Inferencia de generación de texto (TGI): Solución lista para producción de Hugging Face
- Contenedores llama.cpp: Implementación ligera en C++ con soporte de cuantización
- Contenedores personalizados: Envolturas de PyTorch, Transformers o marcos propietarios
Ventajas del enfoque de Docker
Flexibilidad y agnosticismo de marco: Los contenedores de Docker pueden ejecutar cualquier marco de LLM, desde PyTorch hasta ONNX Runtime, dando a los desarrolladores el control completo sobre la pila de inferencia.
Aislamiento de recursos: Cada contenedor opera en entornos aislados con límites definidos de recursos (CPU, memoria, GPU), evitando conflictos de recursos en despliegues de múltiples modelos.
Soporte de orquestación: Docker se integra de forma nativa con Kubernetes, Docker Swarm y plataformas en la nube para escalar, balancear carga y garantizar alta disponibilidad.
Control de versiones: Diferentes versiones de modelos o marcos pueden coexistir en el mismo sistema sin conflictos de dependencias.
Desventajas del enfoque de Docker
Complejidad: Requiere comprensión de la contenerización, montajes de volúmenes, configuración de red y passthrough de GPU (nvidia-docker).
Sobrecarga: Aunque mínima, Docker añade una capa de abstracción delgada que afecta ligeramente el tiempo de inicio y el uso de recursos.
Carga de configuración: Cada despliegue requiere una configuración cuidadosa de Dockerfiles, variables de entorno y parámetros de tiempo de ejecución.
Entendiendo Ollama
Ollama es una aplicación diseñada específicamente para ejecutar LLM localmente, con la simplicidad como su principio central. Proporciona:
- Binario nativo para Linux, macOS y Windows
- Biblioteca de modelos integrada con instalación en un solo comando
- Detección y optimización automática de GPU
- API RESTful compatible con el formato de OpenAI
- Gestión de contexto y estado del modelo
Ventajas de Ollama
Simplicidad: La instalación es sencilla (curl | sh
en Linux), y ejecutar modelos requiere solo ollama run llama2
. Para una lista completa de comandos de Ollama y patrones de uso, consulta nuestro Ollama cheatsheet.
Rendimiento optimizado: Basado en llama.cpp, Ollama está altamente optimizado para la velocidad de inferencia con soporte de cuantización (Q4, Q5, Q8).
Gestión de modelos: Registro de modelos integrado con comandos como ollama pull
, ollama list
y ollama rm
simplifica el ciclo de vida de los modelos.
Experiencia del desarrollador: API limpio, documentación extensa y ecosistema en crecimiento de integraciones (LangChain, CrewAI, etc.). La versatilidad de Ollama se extiende a casos de uso especializados como reclasificación de documentos de texto con modelos de embedding.
Eficiencia de recursos: Gestión automática de memoria y descarga de modelos cuando están inactivos conserva los recursos del sistema.
Desventajas de Ollama
Bloqueo de marco: Principalmente soporta modelos compatibles con llama.cpp, limitando la flexibilidad para marcos como vLLM o motores de inferencia personalizados.
Limitada personalización: Configuraciones avanzadas (cuantización personalizada, flujos de CUDA específicos) son menos accesibles que en entornos de Docker.
Desafíos de orquestación: Aunque Ollama puede ejecutarse en contenedores, carece de soporte nativo para características avanzadas de orquestación como escalamiento horizontal.
Comparación de rendimiento
Velocidad de inferencia
Docker Model Runner: El rendimiento es comparable al de Ollama ya que ambos admiten modelos cuantizados GGUF. Para Llama 2 7B (Q4), se espera 20-30 tokens/segundo en CPU y 50-80 tokens/segundo en GPUs de gama media. La sobrecarga del contenedor es mínima.
Ollama: Utiliza un backend altamente optimizado de llama.cpp con cuantización eficiente. Para Llama 2 7B (Q4), se espera 20-30 tokens/segundo en CPU y 50-80 tokens/segundo en GPUs de gama media. No hay sobrecarga de contenedores. Para detalles sobre cómo Ollama maneja la inferencia concurrente, consulte nuestro análisis sobre cómo Ollama maneja solicitudes paralelas.
Docker (vLLM): Optimizado para procesamiento por lotes con empaquetamiento continuo. Las solicitudes individuales pueden ser ligeramente más lentas, pero el throughput destaca bajo alta carga concurrente (100+ tokens/segundo por modelo con empaquetamiento).
Docker (TGI): Similar a vLLM con excelente rendimiento de empaquetamiento. Añade características como streaming y generación token por token.
Uso de memoria
Docker Model Runner: Similar a Ollama con carga automática de modelos. Los modelos GGUF Q4 típicamente usan 4-6 GB de RAM. La sobrecarga del contenedor es mínima (decenas de MB).
Ollama: Gestión automática de memoria carga modelos según sea necesario y los descarga cuando están inactivos. Un modelo 7B Q4 típicamente usa 4-6 GB de RAM. Más eficiente para escenarios de un solo modelo.
Soluciones tradicionales de Docker: El uso de memoria depende del marco. vLLM preasigna memoria de GPU para un rendimiento óptimo, mientras que los contenedores basados en PyTorch pueden usar más RAM para pesos del modelo y caché KV (8-14 GB para modelos 7B).
Tiempo de inicio
Docker Model Runner: El inicio del contenedor añade ~1 segundo, más el tiempo de carga del modelo (2-5 segundos). Total: 3-6 segundos para modelos medianos.
Ollama: Inicio casi instantáneo con carga del modelo que toma 2-5 segundos para modelos medianos. Experiencia de inicio más rápida.
Docker tradicional: El inicio del contenedor añade 1-3 segundos, más el tiempo de carga del modelo. El precalentamiento de contenedores mitiga esto en despliegues de producción.
Comparación directa entre Docker Model Runner y Ollama
Con la entrada oficial de Docker en el espacio de ejecución de LLM, la comparación se vuelve más interesante. Aquí está cómo DMR y Ollama se comparan cara a cara:
Característica | Docker Model Runner | Ollama |
---|---|---|
Instalación | Pestaña de IA de Docker Desktop o docker-model-plugin |
Un solo comando: curl | sh |
Estilo de comando | docker model pull/run/package |
ollama pull/run/list |
Formato del modelo | GGUF (OCI Artifacts) | GGUF (nativo) |
Distribución del modelo | Docker Hub, registros OCI | Registro de Ollama |
Configuración de GPU | Automática (más sencilla que Docker tradicional) | Automática |
API | Compatible con OpenAI | Compatible con OpenAI |
Integración con Docker | Nativa (es Docker) | Ejecuta en Docker si es necesario |
Soporte de Compose | Nativo | A través de la imagen de Docker |
Curva de aprendizaje | Baja (para usuarios de Docker) | Más baja (para todos) |
Socios del ecosistema | Google, Hugging Face, VMware | LangChain, CrewAI, Open WebUI |
Mejor para | Flujos de trabajo nativos de Docker | Simplicidad absoluta |
Insight clave: DMR lleva los flujos de trabajo de Docker a la implementación de LLM, mientras que Ollama permanece agnóstico de marcos con una operación independiente más sencilla. Su infraestructura existente importa más que las diferencias técnicas.
Recomendaciones para casos de uso
Elija Docker Model Runner cuando
- Flujo de trabajo basado en Docker: Su equipo ya utiliza extensivamente Docker
- Herramientas unificadas: Desea una sola herramienta (Docker) para contenedores y modelos
- Distribución de artefactos OCI: Necesita integración con registros empresariales
- Integración con Testcontainers: Está probando características de IA en CI/CD
- Preferencia por Docker Hub: Desea distribuir modelos a través de canales familiares
Elija Ollama cuando
- Prototipado rápido: Experimentación rápida con diferentes modelos
- Agnóstico de marco: No está vinculado al ecosistema de Docker
- Simplicidad absoluta: Mínima configuración y sobrecarga de mantenimiento
- Despliegues en un solo servidor: Ejecución en laptops, workstations o VMs individuales
- Gran biblioteca de modelos: Acceso a una extensa biblioteca de modelos preconfigurados
Elija soluciones de terceros basadas en Docker cuando
- Despliegues en producción: Necesidad de orquestación y monitoreo avanzados
- Servicio de múltiples modelos: Ejecutar diferentes marcos (vLLM, TGI) simultáneamente
- Orquestación en Kubernetes: Escalado en clusters con balanceo de carga
- Marcos personalizados: Usar Ray Serve o motores de inferencia propietarios
- Control estricto de recursos: Imponer límites granulares de CPU/GPU por modelo
Enfoques híbridos: Lo mejor de ambos mundos
No está limitado a un solo enfoque. Considere estas estrategias híbridas:
Opción 1: Docker Model Runner + Contenedores tradicionales
Use DMR para modelos estándar y contenedores de terceros para marcos especializados:
# Descargar un modelo estándar con DMR
docker model pull ai/llama2
# Ejecutar vLLM para escenarios de alto rendimiento
docker run --gpus all vllm/vllm-openai
Opción 2: Ollama en Docker
Ejecute Ollama dentro de contenedores de Docker para capacidades de orquestación:
docker run -d \
--name ollama \
--gpus all \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama
Esto proporciona:
- La gestión intuitiva de modelos de Ollama
- Las capacidades de orquestación e aislamiento de Docker
- Despliegue en Kubernetes con manifiestos estándar
Opción 3: Combinar según el caso de uso
- Desarrollo: Ollama para iteraciones rápidas
- Entorno de pruebas: Docker Model Runner para pruebas de integración
- Producción: vLLM/TGI en Kubernetes para escalar
Compatibilidad de API
Todas las soluciones modernas convergen en APIs compatibles con OpenAI, simplificando la integración:
API de Docker Model Runner: Puntos finales compatibles con OpenAI se sirven automáticamente al ejecutar modelos. No se requiere configuración adicional.
# El modelo se ejecuta con API expuesto automáticamente
docker model run ai/llama2
# Usar punto final compatible con OpenAI
curl http://localhost:8080/v1/chat/completions -d '{
"model": "llama2",
"messages": [{"role": "user", "content": "¿Por qué es azul el cielo?"}]
}'
API de Ollama: Puntos finales compatibles con OpenAI hacen que sea un reemplazo directo para aplicaciones que usan el SDK de OpenAI. El streaming está completamente soportado.
curl http://localhost:11434/api/generate -d '{
"model": "llama2",
"prompt": "¿Por qué es azul el cielo?"
}'
APIs de soluciones de terceros de Docker: vLLM y TGI ofrecen puntos finales compatibles con OpenAI, mientras que contenedores personalizados pueden implementar APIs propietarios.
La convergencia en la compatibilidad con OpenAI significa que puede cambiar entre soluciones con mínimos cambios de código.
Gestión de recursos
Aceleración con GPU
Docker Model Runner: Soporte nativo de GPU sin configuración compleja de nvidia-docker. Detecta y usa automáticamente las GPUs disponibles, simplificando significativamente la experiencia de GPU en comparación con contenedores tradicionales.
# La aceleración con GPU funciona automáticamente
docker model run ai/llama2
Ollama: Detección automática de GPU en GPUs NVIDIA compatibles con CUDA. No se requiere configuración más allá de la instalación del controlador.
Contenedores tradicionales de Docker: Requiere el runtime de nvidia-docker y asignación explícita de GPU:
docker run --gpus all my-llm-container
Retroceso a CPU
Ambos retroceden graciosamente a la inferencia en CPU cuando no están disponibles las GPUs, aunque el rendimiento disminuye significativamente (5-10 veces más lento para modelos grandes). Para insights sobre el rendimiento en CPU solo en procesadores modernos, lea nuestro test sobre cómo Ollama usa el rendimiento de núcleos de CPU de Intel.
Soporte de múltiples GPUs
Ollama: Soporta paralelismo de tensores en múltiples GPUs para modelos grandes.
Docker: Depende del marco. vLLM y TGI soportan inferencia en múltiples GPUs con configuración adecuada.
Comunidad y ecosistema
Docker Model Runner: Lanzado en abril de 2025 con fuerte respaldo empresarial. Las asociaciones con Google, Hugging Face y VMware Tanzu AI Solutions garantizan disponibilidad amplia de modelos. La integración con la gran comunidad de desarrolladores de Docker (millones de usuarios) proporciona acceso inmediato al ecosistema. Aún se están construyendo recursos específicos de la comunidad como un producto nuevo.
Ollama: Comunidad en rápido crecimiento con más de 50K estrellas en GitHub. Fuerte ecosistema de integración (LangChain, LiteLLM, Open WebUI, CrewAI) y comunidad activa en Discord. Amplias herramientas de terceros y tutoriales disponibles. Documentación y recursos de la comunidad más maduros. Para una visión general completa de las interfaces disponibles, consulte nuestra guía sobre interfaz de chat de código abierto para instancias locales de Ollama. Como con cualquier proyecto de código abierto en rápido crecimiento, es importante monitorear la dirección del proyecto - lea nuestro análisis sobre primeras señales de enshittificación de Ollama para entender preocupaciones potenciales.
Soluciones de terceros de Docker: vLLM y TGI tienen ecosistemas maduros con soporte empresarial. Estudios de caso extensos de producción, guías de optimización y patrones de despliegue de Hugging Face y colaboradores de la comunidad.
Consideraciones de costo
Docker Model Runner: Gratis con Docker Desktop (personal/educativo) o Docker Engine. Docker Desktop requiere suscripción para organizaciones más grandes (250+ empleados o $10M+ de ingresos). Los modelos distribuidos a través de Docker Hub siguen el precio de registro de Docker (repositorios públicos gratuitos, repositorios privados pagos).
Ollama: Completamente gratuito y de código abierto sin costos de licencia independientemente del tamaño de la organización. Los costos de recursos dependen solo del hardware.
Soluciones de terceros de Docker: Gratis para marcos de código abierto (vLLM, TGI). Posibles costos para plataformas de orquestación de contenedores (ECS, GKE) y almacenamiento en registros privados.
Consideraciones de seguridad
Docker Model Runner: Utiliza el modelo de seguridad de Docker con aislamiento de contenedores. Los modelos empaquetados como OCI Artifacts pueden escanearse y firmarse. La distribución a través de Docker Hub permite el control de acceso y escaneo de vulnerabilidades para usuarios empresariales.
Ollama: Ejecuta como un servicio local con API expuesta en localhost por defecto. La exposición de red requiere configuración explícita. El registro de modelos es de confianza (curado por Ollama), reduciendo riesgos de cadena de suministro.
Soluciones tradicionales de Docker: El aislamiento de red está integrado. El escaneo de seguridad de contenedores (Snyk, Trivy) y firma de imágenes son prácticas estándar en entornos de producción.
Todos los soluciones requieren atención a:
- Procedencia del modelo: Modelos no confiables pueden contener código malicioso o backdoors
- Autenticación de API: Implementar autenticación/autorización en despliegues de producción
- Limitación de tasas: Prevenir el abuso y el agotamiento de recursos
- Exposición de red: Asegurar que las APIs no se expongan accidentalmente a internet
- Privacidad de datos: Los modelos procesan datos sensibles; asegurar cumplimiento con regulaciones de protección de datos
Rutas de migración
Desde Ollama a Docker Model Runner
El soporte de GGUF de Docker Model Runner hace que la migración sea sencilla:
- Habilitar Docker Model Runner en Docker Desktop o instalar
docker-model-plugin
- Convertir referencias de modelos:
ollama run llama2
→docker model pull ai/llama2
ydocker model run ai/llama2
- Actualizar puntos finales de API desde
localhost:11434
a DMR (normalmentelocalhost:8080
) - Ambos usan APIs compatibles con OpenAI, por lo que el código de la aplicación requiere cambios mínimos
Desde Docker Model Runner a Ollama
Moverse a Ollama para una operación independiente más sencilla:
- Instalar Ollama:
curl -fsSL https://ollama.ai/install.sh | sh
- Descargar modelos equivalentes:
ollama pull llama2
- Actualizar puntos finales de API a
localhost:11434
de Ollama - Probar con
ollama run llama2
para verificar la funcionalidad
Desde contenedores tradicionales de Docker a DMR
Simplificar su configuración de LLM de Docker:
- Habilitar Docker Model Runner
- Reemplazar Dockerfiles personalizados con comandos
docker model pull
- Eliminar la configuración de nvidia-docker (DMR maneja GPU automáticamente)
- Usar
docker model run
en lugar de comandosdocker run
complejos
Desde cualquier solución a Ollama en Docker
Enfoque mejor de ambos mundos:
docker pull ollama/ollama
- Ejecutar:
docker run -d --gpus all -v ollama:/root/.ollama -p 11434:11434 ollama/ollama
- Usar comandos de Ollama como de costumbre:
docker exec -it ollama ollama pull llama2
- Ganar orquestación de Docker con simplicidad de Ollama
Monitoreo y observabilidad
Ollama: Métricas básicas a través de la API (/api/tags
, /api/ps
). Herramientas de terceros como Open WebUI proporcionan dashboards.
Docker: Integración completa con Prometheus, Grafana, ELK stack y servicios de monitoreo en la nube. Las métricas de contenedores (CPU, memoria, GPU) están disponibles fácilmente.
Conclusión
El panorama de despliegue local de LLM ha evolucionado significativamente con la introducción de Docker Model Runner (DMR) en 2025. La elección ahora depende de sus requisitos específicos:
- Para desarrolladores buscando integración con Docker: DMR proporciona integración nativa de flujos de trabajo de Docker con comandos
docker model
- Para máxima simplicidad: Ollama sigue siendo la solución más sencilla con su gestión de modelos en un solo comando
- Para producción y empresas: Tanto DMR como soluciones de terceros (vLLM, TGI) en Docker ofrecen orquestación, monitoreo y escalabilidad
- Para lo mejor de ambos: Ejecutar Ollama en contenedores de Docker para combinar simplicidad con infraestructura de producción
La introducción de DMR reduce la brecha entre Docker y Ollama en términos de facilidad de uso. Ollama aún gana en simplicidad para prototipado rápido, mientras que DMR destaca para equipos ya invertidos en flujos de trabajo de Docker. Ambos enfoques están activamente desarrollados, listos para producción y el ecosistema es lo suficientemente maduro como para que cambiar entre ellos sea relativamente indoloro.
Conclusión final: Si ya está usando extensivamente Docker, DMR es la elección natural. Si quiere la experiencia más sencilla posible independientemente de la infraestructura, elija Ollama.
Enlaces útiles
Docker Model Runner
- Página oficial de Docker Model Runner
- Documentación de Docker Model Runner
- Guía de inicio de Docker Model Runner
- Blog de anuncio de Docker Model Runner
Ollama
Otras soluciones de Docker
- Documentación de vLLM
- Inferencia de generación de texto de Hugging Face
- Repositorio de GitHub de llama.cpp
- Herramientas de contenedor de NVIDIA
Otros artículos útiles
- Ollama cheatsheet
- Docker Cheatsheet
- Cómo Ollama maneja solicitudes paralelas
- Test: Cómo Ollama usa el rendimiento de núcleos de CPU de Intel
- Reclasificación de documentos de texto con Ollama y modelo de embedding Qwen3 - en Go
- Interfaz de chat de código abierto para modelos de LLM en instancias locales de Ollama
- Primeras señales de enshittificación de Ollama