Contenido
Tutorial de Ollama en Docker: GPU NVIDIA y AMD con Compose
En un servidor, ejecutar Ollama con Docker facilita su administración y actualización, y también permite desplegarlo con otros servicios mediante Compose. Si aún no conoces Docker, consulta primero el tutorial de Docker.
Docker en macOS no puede usar la GPU de Apple. En Mac, instala directamente la aplicación de Ollama.
Solo CPU
docker run -d --name ollama \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama
-v ollama:/root/.ollama: los modelos se guardan en el Volume llamadoollamay no se pierden al recrear el contenedor.-p 11434:11434: permite que el host se conecte a la API.
GPU NVIDIA
1. Instala NVIDIA Container Toolkit
Primero instala los controladores de NVIDIA en el host y, después, NVIDIA Container Toolkit (estos pasos son para Ubuntu; consulta la documentación oficial de NVIDIA para obtener instrucciones detalladas):
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
2. Inicia el contenedor
docker run -d --name ollama --gpus=all \
-v ollama:/root/.ollama \
-p 11434:11434 \
--restart unless-stopped \
ollama/ollama
Comprueba que se esté usando la GPU:
docker exec ollama nvidia-smi
GPU AMD
Usa la imagen de la versión rocm y pasa los dispositivos al contenedor:
docker run -d --name ollama \
--device /dev/kfd --device /dev/dri \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama:rocm
Usa Ollama en el contenedor
docker exec -it ollama ollama run qwen3:8b
docker exec ollama ollama pull nomic-embed-text
docker exec ollama ollama list
La API funciona igual que en una instalación local: http://localhost:11434.
Variables de entorno
Pasa las variables de entorno con -e. Dentro del contenedor, OLLAMA_HOST ya tiene el valor predeterminado 0.0.0.0, así que el host podrá conectarse cuando mapees el puerto con -p:
docker run -d --gpus=all --name ollama \
-e OLLAMA_CONTEXT_LENGTH=8192 \
-e OLLAMA_KEEP_ALIVE=30m \
-v ollama:/root/.ollama -p 127.0.0.1:11434:11434 \
ollama/ollama
127.0.0.1:11434:11434 solo permite conexiones locales, lo que evita exponer la API a la red.
Docker Compose: Ollama + Open WebUI
services:
ollama:
image: ollama/ollama
volumes:
- ollama:/root/.ollama
environment:
OLLAMA_KEEP_ALIVE: 30m
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
environment:
OLLAMA_BASE_URL: http://ollama:11434
volumes:
- open-webui:/app/backend/data
depends_on:
- ollama
restart: unless-stopped
volumes:
ollama:
open-webui:
docker compose up -d
docker compose exec ollama ollama pull qwen3:8b
Abre http://localhost:3000 para usar la interfaz web. Ollama no publica ningún puerto al exterior; solo Open WebUI puede conectarse a él a través de la red de Compose. Si no tienes una GPU NVIDIA, elimina el bloque deploy.
Consulta cómo usar Open WebUI en La interfaz web de Open WebUI.
Actualización
docker pull ollama/ollama
docker rm -f ollama
# Vuelve a crearlo con el comando docker run original; los modelos están en el Volume, así que no es necesario descargarlos de nuevo
Si usas Compose:
docker compose pull
docker compose up -d
Descarga modelos de antemano
Para descargar automáticamente un modelo al iniciar el contenedor, añade esto al script de despliegue:
docker exec ollama ollama pull qwen3:8b
También puedes incluir el modelo directamente en una imagen personalizada (la imagen será muy grande, por lo que normalmente no se recomienda).
Actualizado 12 de octubre de 2026