Docker Model Runner: ejecutar LLMs con Docker, sin Ollama
Docker Model Runner es el lanzador de modelos integrado en Docker Desktop y Docker Engine. Se activa la funcionalidad, luego se descarga un modelo empaquetado en formato OCI desde Docker Hub con docker model pull ai/qwen3.5, se conversa con docker model run y se conectan las aplicaciones a una API compatible con OpenAI (puerto 12434 en el host, o model-runner.docker.internal desde un contenedor). Por debajo, utiliza llama.cpp —como Ollama—, pero se controla mediante la CLI docker y no requiere instalar un daemon separado.
Si Docker ya está en el centro de tu stack, instalar Ollama en paralelo duplica funciones. Docker Model Runner permite ejecutar LLM directamente en Docker: los modelos se convierten en artefactos OCI que se descargan como imágenes, la CLI docker model los ejecuta y una API compatible con OpenAI está disponible para tus aplicaciones. Esta guía muestra cómo activarlo, descargar un modelo desde Docker Hub, llamarlo mediante HTTP y, sobre todo, cuándo Docker Model Runner tiene sentido frente a Ollama, sin exagerar las ventajas de la herramienta.
#¿Por qué Docker Model Runner?
Docker Model Runner es la respuesta de Docker a Ollama: una forma de ejecutar LLM en local sin salir del ecosistema Docker. Ya no gestionas un daemon separado ni una carpeta de modelos aparte: los modelos se distribuyen como artefactos OCI, se descargan de un registro exactamente igual que las imágenes de contenedores y se controlan mediante una nueva familia de comandos docker model.
Técnicamente, el motor de inferencia que utiliza Model Runner es el mismo que el de Ollama, LM Studio o Jan: llama.cpp. La diferencia, por tanto, no es la velocidad bruta, sino la integración. Si tu ordenador o servidor ya utiliza Docker, Model Runner evita añadir una herramienta más y permite que tus contenedores se comuniquen de forma natural con un modelo local.
- Modelos en formato OCI
- Un LLM se descarga, se versiona y se sube como una imagen Docker. Mismo registro, misma autenticación, mismas prácticas.
- API compatible con OpenAI
- Endpoints /engines/v1/chat/completions, /completions, /models. Cualquier cliente OpenAI se conecta aquí cambiando la URL base.
- Sin herramienta adicional
- No hace falta instalar Ollama aparte. Basta con la CLI de Docker, y la inferencia se integra con Compose.
- GPU utilizada directamente
- El motor se ejecuta en el equipo anfitrión (Apple Silicon mediante Metal, NVIDIA mediante CUDA) y no dentro de un contenedor, para no perder la aceleración.
#Prerrequisitos
Tu ChatGPT privado y gratuito en tu máquina en 1 hora — LM Studio, Ollama, Open WebUI, tus documentos, sin nube.
- Espacio en línea de por vida
- PDF + archivos
- Actualizaciones de por vida
- Docker Desktop reciente
- Model Runner llegó con Docker Desktop 4.40 (macOS con Apple Silicon) y después se amplió a Windows con GPU NVIDIA. Actualiza a la última versión disponible.
- O bien Docker Engine en Linux
- En un servidor Linux sin Docker Desktop, Model Runner se instala mediante el paquete docker-model-plugin (ver más abajo).
- VRAM o memoria unificada
- En Q4_K_M, considera aproximadamente 2 GB para un 3B, 5 GB para un 7B, 9 GB para un 14B y 19 GB para un 32B. En Mac, la memoria unificada funciona como VRAM.
- Se recomienda una GPU
- RTX 3060 de 12 GB para empezar, RTX 4070/4080 en la gama media, RTX 4090 de 24 GB o un Mac M4 Pro (24-48 GB de memoria unificada) para los modelos grandes. Usar solo la CPU funciona, pero es lento.
#1. Activar Docker Model Runner
La funcionalidad no está siempre activa por defecto. En Docker Desktop, se encuentra en los ajustes; en línea de comando, una sola instrucción basta.
- 01A través de Docker DesktopAbre Settings → AI (o «Beta features» según la versión) y luego marca «Enable Docker Model Runner». Para llamar a la API desde el equipo anfitrión, activa también «Enable host-side TCP support» y anota el puerto propuesto (12434 por defecto).
- 02A través de la CLIUn comando activa el servicio y, opcionalmente, abre el puerto TCP del lado del host para acceder a la API desde tu máquina sin pasar por un contenedor.
- 03Verificardocker model status confirme que le runner tourne. docker model version affiche la version du plugin installé.
En un servidor Linux con Docker Engine (sin Docker Desktop), Model Runner se añade como un plugin. En una distribución Debian/Ubuntu:
#2. Descargar un modelo en formato OCI
Docker aloja una biblioteca de modelos empaquetados en OCI bajo el namespace ai/ de Docker Hub. Se obtienen exactamente como imágenes, con docker model pull. Los tags codifican el tamaño y la cuantización del modelo.
- ai/smollm2
- Modelo muy pequeño, ideal para validar la instalación en unos segundos incluso sin GPU.
- ai/qwen3.5 · ai/gemma4 · ai/granite4.2
- Los modelos generalistas sólidos de 2026; elige el tamaño según tu VRAM (2B, 4B, 9B, 12B…). Qwen 3.5 9B (≈6,6 GB en Q4) es una buena opción por defecto con 8 GB; todos están bajo licencia Apache 2.0.
- Etiquetas de cuantización
- Una etiqueta como 9B-Q4_K_M especifica el tamaño y la compresión. Q4_K_M es el equilibrio recomendado entre calidad y memoria; Q5_K_M y Q8_0 pesan más.
El formato OCI significa que estos modelos pueden alojarse en cualquier registro compatible: Docker Hub, pero también un registro privado de empresa. Por tanto, puedes subir un modelo interno igual que subes una imagen, con la misma autenticación y las mismas políticas de acceso.
#3. Hablar con docker model run
Como docker run inicia un contenedor, docker model run inicia una conversación. Sin argumento de mensaje, abre un chat interactivo en el terminal; con un prompt, responde una vez y devuelve el control — perfecto para scriptear.
La primera llamada a un modelo lo carga en memoria; las siguientes reutilizan la instancia cargada. El motor retira automáticamente el modelo de la memoria tras un periodo de inactividad para liberar la VRAM, sin que tengas que gestionar un daemon.
#4. API compatible con OpenAI
La verdadera ventaja de Docker Model Runner, al igual que la de Ollama, es su API compatible con la de OpenAI. Cualquier herramienta diseñada para la API de OpenAI funciona simplemente cambiando la URL base. Existen dos direcciones según desde dónde hagas la llamada.
- Desde el host (TCP)
- http://localhost:12434/engines/v1/… si vous avez activé le support TCP côté hôte (port 12434 par défaut).
- Desde un contenedor
- http://model-runner.docker.internal/engines/v1/… — un nom DNS interne résolu automatiquement dans le réseau Docker.
Una llamada directa al chat con curl desde el host, una vez activado el puerto TCP:
El campo model debe corresponder a un modelo descargado localmente. En el SDK de Python de OpenAI, basta con redirigir base_url; la clave API puede ser cualquier cadena: Model Runner no la exige en local.
#5. Conectar un contenedor al modelo
La ventaja de la integración Docker se ve aquí: un contenedor de tu aplicación puede llamar al modelo a través del DNS interno, sin exponer puertos en el host. Desde el código que corre dentro de un contenedor, la URL base se convierte en model-runner.docker.internal.
En la práctica, se pasa la URL mediante una variable de entorno para que el mismo código funcione en local (puerto 12434) y en un contenedor (DNS interno). Un fragmento de docker-compose.yml que inyecta el endpoint en el servicio de la aplicación:
#Docker Model Runner o Ollama, según tu flujo de trabajo
Ambos ejecutan llama.cpp y exponen una API compatible con OpenAI. La elección depende del ecosistema en el que trabajas, no del rendimiento bruto.
- Elige Model Runner
- Cuando Docker ya es tu base: quieres que tus contenedores se comuniquen con el LLM a través de la red Docker, distribuir modelos mediante un registro OCI privado y evitar tener que instalar y mantener una herramienta más.
- Elige Model Runner
- Para una pila Compose en la que el modelo es un servicio entre otros, versionado y desplegado con los mismos procedimientos que tus imágenes.
- Sigue usando Ollama
- Cuando quieres el catálogo de modelos más amplio y actualizado, una comunidad amplia y documentación abundante, y una herramienta que funcione igual en Windows, macOS y Linux sin Docker Desktop.
- Sigue usando Ollama
- Para un uso básico de oficina, fuera de cualquier entorno con contenedores: Ollama en su puerto 11434 sigue siendo la opción más directa, con un ecosistema de interfaces (Open WebUI, LM Studio) ya conectado a él.
#Solución de problemas
- « docker: 'model' is not a docker command »
- El plugin no está instalado o Model Runner no está activado. Actualiza Docker Desktop, activa la función o instala docker-model-plugin en Docker Engine.
- La API no responde en localhost:12434
- El soporte TCP del lado del host no está activado. Vuelve a ejecutar docker desktop enable model-runner --tcp 12434, o marca la opción en Settings → AI.
- Un contenedor no puede conectarse al modelo
- Desde un contenedor, utiliza model-runner.docker.internal, no localhost: localhost apunta al contenedor mismo, no al host.
- Carga lenta o « out of memory »
- El modelo supera la capacidad de tu VRAM. Descarga una variante más ligera (etiqueta Q4_K_M en lugar de Q5/Q8) o de menor tamaño, y verifica que se detecte correctamente la GPU.
- La tarjeta gráfica no se utiliza (Windows)
- La compatibilidad con GPU NVIDIA en Windows llegó después del lanzamiento inicial. Asegúrate de usar una versión de Docker Desktop que la admita y de que tus controladores estén actualizados.
#Para ir más allá
Docker Model Runner se aprovecha mejor al conectarlo con los demás componentes de la IA local que ya se han tratado en el sitio:
- Instalar Ollama: Windows, macOS y Linux
- Para comparar directamente con la alternativa de referencia y su puerto 11434, y decidir cuál se adapta a tu flujo de trabajo.
- Q4, Q5, Q8: ¿qué cuantización elegir?
- Para leer correctamente las etiquetas de los modelos OCI (7B-Q4_K_M, etc.) y sopesar calidad, velocidad y memoria antes de descargarlos.
- llama-server: una API OpenAI local con llama.cpp
- Para ver el mismo motor expuesto de otra manera, con un control más preciso del offloading a la GPU.
¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.