1

Como rodar Ollama com aceleração de GPU em Docker sem quebrar seus drivers CUDA

Fala pessoal!

Com o custo das APIs de LLM subindo e a necessidade de manter dados sensíveis dentro de casa (LGPD e soberania de dados), cada vez mais desenvolvedores e times de infraestrutura estão migrando para inferência local com Ollama.

O problema clássico que vejo muita gente enfrentando é instalar o binário direto na máquina host e acabar com conflito de versões de bibliotecas CUDA, drivers NVIDIA desalinhados ou dificuldade para gerenciar limites de VRAM.

Recentemente estruturei um ambiente conteinerizado completo para produção e queria compartilhar o compose.yaml funcional e as configurações do NVIDIA Container Toolkit que deixam isso rodando limpo e isolado.

1. Configurando o NVIDIA Container Toolkit

Antes de subir o container, o Docker precisa enxergar as GPUs do host. No Ubuntu/Debian:

# 1. Adicionar repositório oficial da NVIDIA
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

# 2. Instalar toolkit e configurar runtime
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

2. O Docker Compose com alocação correta de VRAM

O segredo está no bloco deploy.resources.reservations.devices para garantir que o container receba o device gpu e as capacidades [gpu, compute, utility]:

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama-gpu-server
    restart: unless-stopped
    ports:
      - "127.0.0.1:11434:11434" # Dica: Amarre ao localhost por segurança!
    volumes:
      - ollama_models:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu, compute, utility]

volumes:
  ollama_models:
    name: ollama_models_volume

3. Dica de Segurança Importante

Nunca exponha a porta 11434 aberta para a internet sem autenticação (0.0.0.0:11434), pois a API do Ollama não possui camada de autenticação nativa por padrão. O ideal é manter em 127.0.0.1 e colocar um reverse proxy (Nginx ou Caddy com Bearer Token) na frente.


Escrevi o artigo completo detalhando também como monitorar o consumo de VRAM com o nvidia-smi em tempo real, dicas de dimensionamento de hardware (Mini PCs e GPUs) e comandos de teste de modelos quantizados em:

👉 Tutorial Completo no Fymax Sentinel

Como vocês estão lidando com inferência local de LLMs hoje na infra de vocês? Estão usando Ollama, vLLM ou TGI?

Carregando publicação patrocinada...