Conteúdo
Tutorial de Ollama com Docker: NVIDIA, GPU AMD e Compose
Em um servidor, executar Ollama com Docker facilita o gerenciamento e as atualizações, além de permitir implantá-lo junto com outros serviços usando Compose. Se você ainda não conhece bem o Docker, consulte primeiro o tutorial de Docker.
O Docker no macOS não pode usar a GPU da Apple. No Mac, instale o aplicativo Ollama diretamente.
Somente CPU
docker run -d --name ollama \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama
-v ollama:/root/.ollama: os modelos ficam em um Volume chamadoollamae não são perdidos quando o contêiner é recriado.-p 11434:11434: permite que o host acesse a API.
GPU NVIDIA
1. Instale o NVIDIA Container Toolkit
Instale primeiro o driver NVIDIA no host e, em seguida, o NVIDIA Container Toolkit (o exemplo abaixo é para Ubuntu; consulte a documentação oficial da NVIDIA para ver as etapas detalhadas):
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. Inicie o contêiner
docker run -d --name ollama --gpus=all \
-v ollama:/root/.ollama \
-p 11434:11434 \
--restart unless-stopped \
ollama/ollama
Confirme se a GPU está sendo usada:
docker exec ollama nvidia-smi
GPU AMD
Use a imagem com a versão rocm e passe os dispositivos para o contêiner:
docker run -d --name ollama \
--device /dev/kfd --device /dev/dri \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama:rocm
Use Ollama no contêiner
docker exec -it ollama ollama run qwen3:8b
docker exec ollama ollama pull nomic-embed-text
docker exec ollama ollama list
A API funciona da mesma forma que em uma instalação local: http://localhost:11434.
Variáveis de ambiente
Passe as variáveis de ambiente com -e. Dentro do contêiner, OLLAMA_HOST já usa 0.0.0.0 por padrão. Portanto, depois de mapear a porta com -p, o host pode se conectar:
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 permite conexões apenas da máquina local e evita expor a API à rede.
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
Abra http://localhost:3000 para usar a interface web. Ollama não expõe nenhuma porta externamente; somente o Open WebUI pode acessá-lo pela rede do Compose. Se você não tiver uma GPU NVIDIA, remova a seção deploy.
Veja como usar o Open WebUI na interface web do Open WebUI.
Atualização
docker pull ollama/ollama
docker rm -f ollama
# Recrie o contêiner com o comando docker run original; os modelos estão no Volume e não precisam ser baixados novamente
Ao usar Compose:
docker compose pull
docker compose up -d
Baixe modelos antecipadamente
Para baixar modelos automaticamente quando o contêiner iniciar, adicione o seguinte ao script de implantação:
docker exec ollama ollama pull qwen3:8b
Você também pode incluir os modelos diretamente em uma imagem personalizada (a imagem ficará muito grande, por isso geralmente não é recomendado).
Atualizado 12 de outubro de 2026