🤖 Docker con IA
Docker ya no sirve únicamente para ejecutar contenedores.
También incorpora soporte para ejecutar modelos de inteligencia artificial de forma local, permitiendo descargarlos, administrarlos y exponer una API lista para ser utilizada desde cualquier aplicación.
Esta funcionalidad convierte a Docker en una alternativa muy interesante para desarrollar aplicaciones con IA sin depender necesariamente de servicios externos.
🧠 Docker Models
Docker incorpora un conjunto de comandos para trabajar con modelos de IA.
Entre ellos destacan:
docker model searchdocker model pulldocker model listdocker model statusdocker model run
Estos comandos permiten buscar, descargar y ejecutar modelos directamente desde Docker.
🔍 Buscar modelos disponibles
Podemos buscar modelos directamente desde la terminal.
Por ejemplo:
docker model search gemma
Docker ofrece un catálogo de modelos disponibles que pueden descargarse fácilmente, de una forma muy similar a cómo funciona Ollama.
📥 Descargar un modelo
Una vez localizado el modelo, basta con descargarlo utilizando docker model pull.
Durante la clase se utiliza un modelo pequeño (ai/smollm2) para evitar consumir demasiados recursos durante la demostración.
Después de descargarlo podemos comprobar que está instalado mediante:
docker model list
Este comando muestra información como:
- Arquitectura
- Cuantización
- Parámetros
- Modelos instalados
▶️ Ejecutar un modelo
Una vez instalado, Docker permite ejecutar consultas directamente desde la terminal.
Por ejemplo:
docker model run ai/smollm2
Y realizar preguntas como:
What is Docker?
La respuesta será generada completamente por el modelo instalado localmente.
🚀 Docker crea automáticamente una API local
Uno de los aspectos más interesantes es que, al instalar un modelo, Docker expone automáticamente una API HTTP local.
Esto significa que cualquier aplicación de nuestra máquina puede empezar a utilizar ese modelo inmediatamente, sin necesidad de instalar servidores adicionales.
En otras palabras:
Instalar un modelo implica disponer automáticamente de un endpoint local para interactuar con él.
🖥️ Utilizar el modelo desde cualquier aplicación
La API local puede consumirse desde cualquier lenguaje o framework.
Esto permite crear aplicaciones que utilizan modelos locales simplemente realizando peticiones HTTP.
Incluso sería posible instalar Docker en un servidor, descargar los modelos necesarios y ofrecer servicios de IA completamente autoalojados.
📦 Consumir la IA desde un contenedor
La integración resulta todavía más interesante cuando la propia aplicación también se ejecuta dentro de Docker.
Durante la clase se muestra un ejemplo en Python utilizando Flask que consume el modelo mediante una URL interna proporcionada automáticamente por Docker.
Docker crea internamente una dirección especial para que los contenedores puedan comunicarse con el servicio de IA sin necesidad de utilizar localhost.
🤝 Compatibilidad con la API de OpenAI
La aplicación utiliza el SDK oficial de OpenAI.
Esto es posible porque Docker ofrece una API compatible con el formato utilizado por OpenAI, permitiendo reutilizar prácticamente el mismo código.
Por ejemplo, la aplicación realiza llamadas mediante:
client.chat.completions.create(...)
Esto facilita enormemente migrar aplicaciones entre distintos proveedores de modelos.
⚙️ Configurar el modelo mediante variables de entorno
La URL del modelo puede configurarse mediante variables de entorno.
Esto permite cambiar fácilmente entre:
- Modelos locales de Docker
- OpenAI
- Otros proveedores compatibles
Sin modificar el código de la aplicación.
🏗️ Construir y ejecutar la aplicación
Una vez preparada la aplicación:
- Se construye la imagen con
docker build. - Se ejecuta con
docker run. - Se expone el puerto correspondiente.
- La aplicación empieza a utilizar automáticamente el modelo instalado en Docker.
Al realizar una petición HTTP a la aplicación, esta consulta el modelo local y devuelve la respuesta generada por la inteligencia artificial.
🎯 Ventajas de Docker Models
Esta integración aporta varias ventajas:
- Gestión centralizada de modelos.
- Instalación muy sencilla.
- API local disponible automáticamente.
- Compatibilidad con el ecosistema OpenAI.
- Integración transparente entre contenedores.
- Posibilidad de ejecutar IA completamente en local.
📌 Ideas clave de esta clase
Quédate con estos conceptos:
- Docker permite descargar y ejecutar modelos de IA.
- Los modelos pueden buscarse e instalarse desde la terminal.
- Docker expone automáticamente una API HTTP local.
- Cualquier aplicación puede consumir esa API.
- Los contenedores pueden acceder al modelo mediante una URL interna.
- La API es compatible con el SDK oficial de OpenAI.
- Es posible cambiar fácilmente entre modelos locales y proveedores externos.
- Docker facilita crear aplicaciones de IA completamente autoalojadas.
🚀 Lo siguiente
Ahora que ya sabes cómo ejecutar modelos de inteligencia artificial con Docker y consumirlos desde tus aplicaciones, el siguiente paso es aprovechar esta infraestructura para desarrollar servicios y herramientas que integren IA de forma completamente local.
💡 Tip: Si tu aplicación ya utiliza el SDK de OpenAI, puedes adaptar el
base_urlpara apuntar a Docker Models y ejecutar modelos locales con cambios mínimos en el código.