Menú de navegaciónMenú
Categorías
Logo campusMVP.es

La mejor forma de Aprender Programación online y en español www.campusmvp.es

Docker: ejecución sencilla de modelos generativos locales

Docker ha lanzado hace muy poco una nueva herramienta que promete simplificar y optimizar el trabajo con modelos de inteligencia artificial generativa en entornos locales: Docker Model Runner. Si trabajas con Docker y te interesan los grandes modelos de lenguaje, esta nueva característica podría transformar tu flujo de trabajo de manera importante.

Docker Model Runner permite ejecutar modelos de inteligencia artificial directamente desde la línea de comandos, sin necesidad de empaquetarlos en imágenes de contenedor (algo que siempre ha sido complicado y ha dado problemas). La idea es que puedas descargar y ejecutar los modelos en tu hardware local, pero usando Docker como "motor" para no tener que instalar nada y poder usarlo como el resto de infraestructura de desarrollo que estés utilizando.

Con esta estrategia, nos ahorramos tiempo y recursos, pero también tenemos una experiencia de desarrollo más fluida para trabajar con modelos en local.

Te cuento rápidamente todos los detalles sobre cómo funciona, sus características, limitaciones, requisitos, y precios.

¿Cómo funciona Docker Model Runner?

Esta característica viene de serie con Docker Desktop a partir de su versión 4.40 (en el momento de escribir esto está todavía en "beta" pero es bastante fiable).

Docker Model Runner ofrece una interacción directa con los modelos de lenguaje usando APIs compatibles con OpenAI, aparte de darnos una interfaz básica para poder probarlos desde la línea de comandos.

Los modelos se descargan desde Docker Hub y se almacenan localmente (o sea, no están dentro de un contenedor) para un acceso más rápido en futuras ejecuciones, para lo cual utilizamos los comandos de Docker que ya conoces (pull, run, rm...), pero con la instrucción model delante, o sea: docker model pull, docker model run o docker model rm .

En concreto, los comandos soportados son:

  • list: listar los modelos disponibles localmente.
  • pull: descargar un modelo de Docker Hub.
  • rm: eliminar un modelo descargado.
  • run: ejecutar un modelo de forma interactiva o con un aviso.
  • status: comprobar si el ejecutor del modelo está en funcionamiento.
  • version: mostrar la versión actual.

Los modelos que tengas en local se cargan en memoria solo cuando se necesitan y se libera la memoria cuando dejes de usarlos, optimizando así el uso de los recursos de tu ordenador. Además, cuenta con soporte para aceleración por GPU, lógicamente, lo que reduce la latencia y mejora el rendimiento.

Para entendernos: es como ejecutar Ollama, pero más sencillo y con mayor facilidad de gestión.

Soporta una buena selección de modelos de código abierto o de "pesos abiertos", como: Llama de Meta, Phi de Microsoft, Mistral, DeepSeek, Gemma de Google o Qwen entre otros. Puedes consultar aquí la lista completa de modelos soportados por Docker Model Runner.

Por ejemplo, puedes descargar el modelo Phi4 de Microsoft escribiendo:

docker model pull ai/phi4

que lo deja en disco para su uso posterior cuando lo necesites.

Si ahora lo quieres ejecutar, simplemente ejecuta el comando run:

docker model run ai/phi4

Por defecto al ejecutarlo se lanza en forma de chat interactivo, es decir, podrás empezar a intercambiar mensajes con el modelo desde la línea de comandos como si fuese una interfaz de chat normal. Para terminar y volver a la terminal escribe el comando /bye.

Pero también puedes obtener una respuesta inmediata a una entrada que le pases como argumento al comando. Por ejemplo:

docker model run ai/phi4 "Hola, ¿qué tal estás?"

a lo que el modelo te devolverá una respuesta directamente en la línea de comandos.

Lo mas interesante, de todos modos, es que al ejecutar un modelo tenemos desde Docker una API compatible con OpenAI con una serie de endpoints a los que podemos llamar para interactuar con nuestro modelo desde una aplicación propia.

La dirección por defecto de esta API es http://model-runner.docker.internal/engines/llama.cpp/v1/ y, como digo, es compatible con la API de Open AI, de modo que podemos acceder a los recursos chat/completions, completions y embeddigns para trabajar con el modelo que corresponda, aunque no sea (y no será normalmente) un modelo de Open AI.

Es así de sencillo.

Lo interesante es que Docker está ejecutando estos modelos fuera del contenedor, usando el hardware local directamente, algo que puede sorprender de entrada pero que es precisamente la gracia que tiene.

Es similar a Ollama, pero en este caso, llama.cpp está envuelto en la API de Docker e integrado con las herramientas de Docker. Esto facilita muchísimo el proceso, ya que ejecutar modelos de IA dentro de contenedores puede ser muy complicado.

Lo que conseguimos es integrar estos modelos fuera de contenedores pero dentro del ecosistema de Docker, lo que facilita gestionarlos como el resto de los elementos de trabajo que utilicemos, con esa filosofía de de "infraestructura versionada" que nos permite tener Docker. Es un gran avance.

Te dejo un enlace a la documentación oficial de Docker Model Run y también a un repositorio de ejemplo que han creado con la misma aplicación de chat, que trabaja contra la API que acabamos de ver, creada con Go, Node.js y Python, para que puedas probarlo y aprender.

🐳 Y recuerda, si necesitas aprender en serio y bien Docker y mucho más, tenemos el curso que necesitas, con un material original y cuidado, de la mano de un verdadero experto que además será tu tutor.

Limitaciones y uso gratuito de Docker Model Runner

Actualmente, Docker Model Runner solo está disponible para macOS con Apple Silicon (M1/M2/M3/M4), aunque se espera soporte para Windows con GPUs NVIDIA a finales de este mismo mes de abril de 2025.

Hay que tener en cuenta además que, como con cualquier utilidad de este tipo, los modelos pueden llegar a ser grandes, lo que puede resultar en tiempos de descarga iniciales largos. Además, de momento no incorpora de serie ninguna salvaguarda para cuando cargamos un modelo más grande que el que nuestro hardware puede soportar, pudiendo producirse algún error que tire todo abajo. Pero lo irán perfeccionando: al fin y al cabo estamos todavía con una beta.

Docker Model Runner es una característica incluida en Docker Desktop, por lo que no tiene un coste adicional más allá de la suscripción a Docker Desktop que necesites. Como seguramente sabes, puedes usar Docker gratuitamente para uso personal y en empresas pequeñas, pero si tu empresa es grande (tiene más de 250 empleados o factura más de 10 millones de dólares) es necesario pagar una licencia. Esto ahora lo tienen un poco escondido por ahí, pero sigue siendo válido.

En resumen

Aunque acaba de salir y está todavía en "beta", el futuro del Docker Model Runner parece prometedor porque es una herramienta muy interesante que facilita mucho la vida si vas a incorporar modelos locales a tu flujo de desarrollo. Con el soporte para Windows en camino y la posibilidad de integrar más modelos y características, esta herramienta podría convertirse en un "estándar" para el desarrollo de aplicaciones de inteligencia artificial, casi tanto como ya lo es Docker para cualquier tipo de desarrollo. Además, Docker planea mejorar la integración con otras herramientas y plataformas, lo que facilitará aún más el trabajo de los desarrolladores.

Deberías echarles un vistazo 😉

José Manuel Alarcón Fundador de campusMVP.es, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Microsoft lo ha reconocido como MVP (Most Valuable Professional) en desarrollo web desde el año 2004 hasta la actualidad. Puedes seguirlo en LinkedIn. Ver todos los posts de José Manuel Alarcón
Archivado en: Herramientas

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.