Em execução Ollama no Docker é a maneira mais limpa de manter um servidor local de modelos reproduzível: o mesmo comando funciona em um laptop, em um servidor doméstico e em um servidor alugado com GPU, sem que nada vaze para o sistema hospedeiro. A configuração é curta, mas dois detalhes — passagem direta da GPU e persistência de volumes — são responsáveis pela maior parte do tempo desperdiçado.
Quick answer
Baixe e execute a imagem oficial com um volume nomeado para que os modelos sobrevivam às reinicializações: docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama. Para uma GPU NVIDIA, instale o NVIDIA Container Toolkit no hospedeiro e adicione --gpus=all. Em seguida, baixe modelos dentro do contêiner com docker exec -it ollama ollama pull llama3.1. A API fica disponível na porta 11434 exatamente como em uma instalação nativa.
Os três comandos essenciais
| Objetivo | Comando |
|---|---|
| Apenas CPU | docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama |
| Com GPU NVIDIA | docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama |
| Baixar um modelo | docker exec -it ollama ollama pull llama3.1 |
Passagem direta da GPU: a parte que costuma falhar
Por padrão, um contêiner não consegue acessar sua GPU. No Linux, instale o NVIDIA Container Toolkit no hospedeiro, reinicie o Docker e adicione --gpus=all. Verifique se funcionou dentro do contêiner com docker exec -it ollama nvidia-smi — se esse comando falhar, o Ollama será executado, mas silenciosamente na CPU, levando você a concluir erroneamente que sua GPU é lenta, quando na verdade ela simplesmente não está sendo utilizada. No Windows, o caminho correto é usar o Docker Desktop com backend WSL2 e drivers NVIDIA atualizados. Usuários AMD precisam da imagem com tag ROCm, em vez da imagem padrão; já GPUs Apple Silicon não podem ser expostas ao Docker — no macOS, execute o Ollama nativamente.
Mantenha seus modelos entre reinicializações
Os arquivos de modelos são grandes e demoram para ser baixados novamente, e um contêiner sem volume os descarta assim que é removido. A flag -v ollama:/root/.ollama em todos os comandos acima cria um volume nomeado que persiste entre reinicializações, atualizações e alterações de imagem. Se preferir armazenar os arquivos em um local visível, use um bind-mount para um diretório do hospedeiro em vez disso: -v /srv/ollama:/root/.ollama.
docker compose, para uma configuração que você mantém
Para qualquer configuração permanente, um arquivo docker-compose supera um comando longo de execução: ele registra a reserva da GPU, o volume e a porta em um único lugar, reinicia automaticamente o serviço e permite adicionar uma interface web ao lado dele posteriormente. O contêiner expõe o mesmo endpoint compatível com OpenAI em http://localhost:11434, de modo que os aplicativos não conseguem distinguir entre instalações nativas e em contêiner.
Convly’s take
Contêinerize o Ollama quando a máquina for um servidor, e pule o Docker quando a máquina for seu laptop. Em um servidor doméstico ou em um servidor alugado com GPU, a configuração com volume + docker-compose é realmente superior: reproduzível, atualizável e fácil de migrar. Em uma máquina pessoal — especialmente um Mac, onde a passagem direta da GPU é impossível — o Docker adiciona uma camada que reduz desempenho e traz poucos benefícios. O problema mais comum causado pelo próprio usuário que observamos é um contêiner executando silenciosamente na CPU porque o toolkit nunca foi instalado; execute nvidia-smi dentro do contêiner antes de fazer qualquer benchmark.
Perguntas frequentes
O Ollama no Docker suporta GPUs?
Sim, com NVIDIA mediante instalação do NVIDIA Container Toolkit e --gpus=all, e com AMD usando a imagem ROCm. GPUs Apple Silicon não podem ser expostas ao Docker — execute o Ollama nativamente no macOS.
Onde os modelos são armazenados na configuração com Docker?
Dentro do contêiner, em /root/.ollama. Mapeie esse caminho para um volume nomeado ou diretório do hospedeiro, caso contrário os modelos desaparecerão quando o contêiner for removido.
O Ollama é mais lento no Docker?
Negligenciavelmente no Linux com passagem direta adequada da GPU. A lentidão percebida quase sempre significa que o contêiner está rodando na CPU porque a GPU não foi passada corretamente.
Posso executar vários modelos em um único contêiner?
Sim — baixe quantos desejar; o Ollama os carrega sob demanda. O limite é a memória: apenas os modelos efetivamente carregados consomem RAM ou VRAM.
Novo na ferramenta? Comece com o Guia de instalação do Ollama, verifique os requisitos de hardware em requisitos do sistema para o Ollama, ou dimensionar um modelo com o calculadora de VRAM.

