Iniciante 14 minDocker

Ollama com Docker: instalação e primeiro modelo

Resposta direta

Para rodar Ollama no Docker, execute a imagem oficial ollama/ollama com um volume para os modelos e a porta 11434: docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama. Com uma placa NVIDIA, adicione --gpus=all após instalar o NVIDIA Container Toolkit. No macOS, o Docker Desktop não oferece acesso à GPU. Publique a porta em 127.0.0.1 se a API não deva ficar acessível pela rede.

O Ollama em um contêiner é um serviço isolado que pode ser iniciado, atualizado e removido com um comando, sem alterar o sistema. Este guia parte do comando oficial, acrescenta uma GPU NVIDIA, um primeiro modelo e um arquivo Compose, e depois aborda o que os tutoriais omitem: quem realmente pode acessar a porta 11434, qual versão fixar e por que uma GPU pode desaparecer durante a execução.

Por Mohamed Meguedmi·Atualização 2026-09-29·Testado no Windows, macOS e Linux

#Ollama dentro do Docker: o que realmente muda

A imagem oficial se chama ollama/ollama e está disponível no Docker Hub, onde ultrapassa os 100 milhões de downloads. Ela baseia-se em Ubuntu 24.04 e inicia diretamente o servidor Ollama: a variável OLLAMA_HOST tem o valor 0.0.0.0:11434, ou seja, a API escuta na porta 11434 dentro do contêiner. Restam quatro decisões a serem tomadas. Publicar essa porta para o host, montar um volume em /root/.ollama para manter os modelos, conceder acesso ao GPU com --gpus=all se você tiver uma placa NVIDIA, e escolher a versão da imagem. O contêiner inicia sem nenhum modelo: você os baixa posteriormente com o comando ollama, executado dentro do contêiner. Essas quatro decisões são idênticas em um arquivo Compose.

Você ganha uma instalação isolada, sem serviço do sistema, descrita por um único arquivo e que pode coexistir facilmente com outros contêineres (interface web, banco de dados vetorial, n8n). Em contrapartida, precisa configurar o acesso à GPU, não tem acesso à GPU no macOS e precisa controlar a exposição de uma porta de rede — um ponto que a maioria dos tutoriais omite.

#Qual comando de acordo com seu hardware

O kit IA Local

Seu ChatGPT privado e gratuito na sua máquina em 1 hora — LM Studio, Ollama, Open WebUI, seus documentos, sem nuvem.

  • Espaço online vitalício
  • PDF + arquivos
  • Atualizações vitalícias

Uma única imagem abrange todos os casos; apenas as opções de inicialização mudam conforme a GPU. A tabela reproduz as informações da documentação do Ollama, incluindo a restrição que mais costuma causar problemas.

Opções do docker run de acordo com a máquina (documentação Ollama, setembro de 2026)
MáquinaImagem e opçõesO que é necessário no hostLimitação que você deve conhecer
Sem GPUollama/ollama, nenhuma opçãoApenas DockerReserve essa via para modelos pequenos
NVIDIA, Linuxollama/ollama com --gpus=allDriver 550 ou superior, NVIDIA Container ToolkitPlacas com compute capability de 5.0 a 6.2: driver 570 no mínimo
NVIDIA, WindowsMesmo comando, Docker DesktopBackend WSL2, driver compatível com WSL2, kernel WSL2 atualizadoSem WSL2, nenhum acesso ao GPU
AMD Radeon, Linuxollama/ollama:rocm com --device /dev/kfd --device /dev/driControlador AMD ROCm v7Placa não listada: HSA_OVERRIDE_GFX_VERSION, em teste
Outros GPUs (Vulkan)ollama/ollama com --device /dev/kfd --device /dev/driNada: Vulkan está incluído na imagemDesativável com OLLAMA_VULKAN=0
NVIDIA Jetson--gpus=all e JETSON_JETPACK=5 ou 6JetPack 5 ou 6Ollama não adivinha a versão
Mac (Docker Desktop)ollama/ollama, apenas CPUNadaSem passthrough de GPU: prefira a instalação nativa

#Pré-requisitos

Docker
Docker Engine no Linux, Docker Desktop no Windows ou macOS, com o comando docker compose para a seção 5.
Memória
O peso do modelo, mais o contexto, mais uma margem para o sistema. qwen3.5:9b pesa 6,6 GB: ao executar na CPU, procure ter 16 GB de RAM, não 8.
Disco
20 GB livres para imagem e um ou dois modelos.
GPU NVIDIA, opcional
O driver é instalado no host, nunca no contêiner; o NVIDIA Container Toolkit faz a ponte.

#Procedimento em cinco etapas

  1. 01
    Instalar o Docker
    Docker Engine no Linux, Docker Desktop no Windows ou macOS. O comando docker version deve responder tanto no lado do cliente quanto no lado do motor.
  2. 02
    Preparar o GPU NVIDIA (opcional)
    Instalar o NVIDIA Container Toolkit, executar nvidia-ctk runtime configure --runtime=docker, reiniciar o Docker e, em seguida, testar com docker run --rm --gpus all ubuntu nvidia-smi.
  3. 03
    Iniciar o contêiner
    docker run avec -d, --name ollama, -v ollama:/root/.ollama, -p 127.0.0.1:11434:11434 et, avec NVIDIA, --gpus=all.
  4. 04
    Baixar um modelo
    docker exec -it ollama ollama pull, seguido de qwen3.5:4b para uma placa de 8 GB, ou de qwen3.5:9b com mais margem.
  5. 05
    Verificar
    docker exec ollama ollama ps doit afficher 100% GPU dans la colonne PROCESSOR.

#1. O comando docker run

A documentação do Ollama fornece este comando para execução apenas no processador: docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama. A versão abaixo limita a publicação da porta à máquina local, o que a seção seguinte justifica, e adiciona a reinicialização automática.

Ollama com Docker, versão para CPU
docker run -d \
  --name ollama \
  -p 127.0.0.1:11434:11434 \
  -v ollama:/root/.ollama \
  --restart unless-stopped \
  ollama/ollama
-p 127.0.0.1:11434:11434
Publica a porta 11434 do contêiner na porta correspondente da máquina, com acesso apenas pela própria máquina.
-v ollama:/root/.ollama
Volume nomeado montado no local onde Ollama armazena seus modelos. Ele sobrevive à exclusão do contêiner.
--restart unless-stopped
Reinicia o contêiner após uma reinicialização do Docker ou da máquina, exceto se o contêiner tiver sido parado manualmente.
Verificação
docker ps --filter name=ollama
curl http://localhost:11434/api/version

A resposta é um objeto JSON com o número de versão, por exemplo {"version":"0.34.4"}, a versão estável em 29 de setembro de 2026.

#Porta 11434: quem realmente pode acessá-la

Instalado nativamente, Ollama escuta por padrão em 127.0.0.1: apenas a máquina pode conversar com ele. No contêiner, a imagem define OLLAMA_HOST para 0.0.0.0:11434, caso contrário, a porta não seria acessível do exterior. A proteção depende, portanto, da forma como você publica a porta.

De acordo com a documentação do Docker, publicar a porta de um contêiner é pouco seguro por padrão: ela se torna acessível ao mundo externo, não apenas ao host. O comando -p 11434:11434 a associa a todos os endereços da máquina. Acontece que a API local do Ollama não exige autenticação: qualquer pessoa que consiga acessar a porta pode listar seus modelos, baixar modelos ou ocupar sua GPU.

!
No Ubuntu, o ufw não protege você aqui
O Docker redireciona o tráfego das portas publicadas antes que ele chegue às regras do ufw. Uma regra que bloqueia a porta 11434 é ignorada; a documentação do Docker descreve isso como um desvio das configurações do firewall. Publicar em 127.0.0.1 é a solução mais simples.
-p 11434:11434
Todas as interfaces do host: acessível pela rede local ou até mesmo pela Internet.
-p 127.0.0.1:11434:11434
Apenas na máquina local. Esse é o padrão escolhido neste guia.
-p 192.168.1.10:11434:11434
Um único endereço do host; substitua-o pelo seu.

Para disponibilizar intencionalmente o Ollama em uma rede, coloque um proxy reverso com autenticação à frente dele, como explica o guia de segurança citado no final da página.

#Mudar a porta no host

A porta 11434 está em uso se outra instância já estiver rodando, geralmente a aplicação nativa. Não mexa no lado do contêiner: mude apenas o número da esquerda. Com -p 127.0.0.1:11435:11434, sua máquina comunica-se com Ollama na porta 11435; dentro do contêiner, nada muda.

#Acessar o Ollama a partir de outro contêiner

Dois serviços de um mesmo arquivo Compose compartilham uma rede na qual cada um pode ser acessado pelo nome do serviço. O Open WebUI usa assim http://ollama:11434, sem publicar a porta externamente. Se o Ollama estiver rodando no host, a documentação do Open WebUI aponta o problema: ele escuta em 127.0.0.1 e permanece inacessível a partir do contêiner. É necessário acessá-lo por host.docker.internal e configurá-lo para escutar em outro endereço.

#2. Ativar a GPU NVIDIA

O Docker não detecta sua GPU por padrão. É necessário ter, no host, um driver NVIDIA atualizado, o NVIDIA Container Toolkit e, então, usar a opção --gpus. O Ollama exige um driver de versão 550 ou mais recente, e 570 para placas antigas com compute capability de 5.0 a 6.2. Os contêineres usam o driver do host; não incluem um driver próprio.

NVIDIA Container Toolkit (Ubuntu, Debian)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
  | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -fsSL 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

O comando nvidia-ctk modifica o arquivo /etc/docker/daemon.json para que o Docker reconheça o runtime NVIDIA, daí a necessidade de reiniciar. Para Fedora ou RHEL, a documentação do Ollama fornece a variante com yum ou dnf. Antes de mexer no Ollama, isole o problema com um contêiner descartável: se ele falhar, o Ollama também não detectará sua GPU.

Teste de passthrough da GPU
docker run --rm --gpus all ubuntu nvidia-smi

Reinicie em seguida Ollama com acesso à GPU. O volume é conservado: os modelos já baixados permanecem lá.

Ollama Docker, versão GPU NVIDIA
docker rm -f ollama

docker run -d \
  --name ollama \
  --gpus=all \
  -p 127.0.0.1:11434:11434 \
  -v ollama:/root/.ollama \
  --restart unless-stopped \
  ollama/ollama
!
Windows: o backend WSL2 é obrigatório
De acordo com a documentação do Docker, o acesso à GPU no Docker Desktop existe apenas no Windows com o backend WSL2. É necessário um driver NVIDIA com suporte a WSL2, um Windows atualizado e o kernel WSL2 mais recente, obtido com wsl --update. Para comparar com o Ollama instalado no Windows, veja o guia WSL2 ou nativo.

Para uma Radeon no Linux, a tag rocm e os dispositivos /dev/kfd e /dev/dri substituem --gpus; ainda é necessário instalar o driver ROCm v7 no host.

Ollama Docker, GPU AMD (ROCm)
docker run -d \
  --device /dev/kfd --device /dev/dri \
  -v ollama:/root/.ollama \
  -p 127.0.0.1:11434:11434 \
  --name ollama \
  ollama/ollama:rocm

#3. Primeiro modelo

O container está rodando, mas está vazio. O comando ollama fica dentro do container: você o executa com docker exec. Este guia utiliza qwen3.5:9b, que a biblioteca Ollama descreve como tendo 6,6 GB, uma janela de 256K e suporte a texto e imagem.

Baixar um modelo
docker exec -it ollama ollama pull qwen3.5:9b

Esses 6,6 GB devem caber na memória antes mesmo de o contexto entrar em jogo. Em uma placa de 8 GB, a margem é pequena: a variante 4B é a escolha prudente.

Tamanhos das variantes qwen3.5 na biblioteca Ollama (setembro de 2026)
TagPeso no discoReferência para escolher
qwen3.5:4b3,4 GBPlaca de 8 GB, com margem para o contexto
qwen3.5:9b6,6 GBPlaca de 12 GB ou mais, ou 16 GB de RAM para execução no processador
qwen3.5:27b17 GBPlaca de 24 GB, contexto moderado
qwen3.5:35b24 GBNão cabe em uma placa de 24 GB com contexto: parte do modelo é transferida para a RAM do sistema.

Os marcadores da última coluna são ordens de grandeza, não medidas: a posição real depende do contexto e da quantificação. Para conversar com o modelo, inicie ollama run dans o contêiner.

Conversa
docker exec -it ollama ollama run qwen3.5:9b

O uso habitual se dá pela API HTTP: qualquer cliente se comunica com o contêiner como se fosse uma instalação nativa do Ollama, e a documentação especifica que a API aceita um subconjunto do formato OpenAI.

Chamada à API a partir do host
curl http://localhost:11434/api/generate -d '{
  "model": "qwen3.5:9b",
  "prompt": "Explique la quantification Q4 en deux phrases.",
  "stream": false
}'
O modelo está no GPU?
docker exec ollama ollama ps

Na coluna PROCESSOR, 100% GPU significa que o modelo está inteiramente na placa, 100% CPU que está na memória do sistema e 48%/52% CPU/GPU que está dividido entre as duas. Essa divisão torna a geração significativamente mais lenta: é melhor usar um modelo menor do que um que não caiba inteiramente na VRAM.

#O contexto é definido no contêiner

O tamanho padrão da janela de contexto depende da memória: 4k com menos de 24 GiB de VRAM, 32k entre 24 e 48 GiB, 256k acima. A documentação recomenda pelo menos 64.000 tokens para agentes e ferramentas de código. Um contexto maior consome mais memória: use -e OLLAMA_CONTEXT_LENGTH=8192 no comando docker run, depois verifique a coluna CONTEXT do comando ollama ps.

#4. Volume persistente: onde estão seus modelos

O -v ollama:/root/.ollama cria um volume Docker chamado ollama, separado do contêiner. A documentação do Docker confirma: um volume persiste após a remoção do contêiner, o que permite substituir a imagem sem baixar os modelos novamente. O comando docker volume inspect ollama indica seu Mountpoint, a localização dos arquivos no host.

No Linux, a instalação nativa armazena os modelos em /usr/share/ollama/.ollama/models. Esse diretório não tem relação com o volume do Docker: um modelo baixado de um lado não aparece do outro.

→
Armazenar modelos em outro disco
Substitua o volume nomeado por um diretório do host: -v /mnt/ssd/ollama:/root/.ollama. Os arquivos podem ser lidos diretamente, mas você mesmo gerencia as permissões do diretório.
Backup do volume
docker run --rm \
  -v ollama:/data \
  -v $(pwd):/backup \
  alpine tar czf /backup/ollama-models.tar.gz -C /data .

#5. Docker Compose: a mesma coisa, em um arquivo

O arquivo abaixo faz o mesmo que os comandos anteriores, pode ser revisado rapidamente e versionado no git. Ele fixa a versão da imagem: substitua 0.34.4 pela versão estável mais recente no momento da leitura.

compose.yaml
services:
  ollama:
    image: ollama/ollama:0.34.4
    container_name: ollama
    ports:
      - "127.0.0.1:11434:11434"
    volumes:
      - ollama:/root/.ollama
    restart: unless-stopped
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

volumes:
  ollama:

O bloco deploy reserva a GPU; de acordo com a documentação do Compose, o campo capabilities é obrigatório, caso contrário a implantação falha. Sem GPU NVIDIA, remova o bloco inteiro: o restante funciona no processador.

Ciclo de vida
docker compose up -d        # démarrer
docker compose logs -f      # suivre les logs
docker compose pull         # télécharger l'image du tag indiqué
docker compose down         # arrêter, volume conservé
docker compose down -v      # arrêter et supprimer le volume : efface tous les modèles
i
Cuidado com a opção -v
De acordo com a documentação do Docker, o comando docker compose down -v remove os volumes nomeados declarados no arquivo. O volume ollama faz parte disso: seus modelos desaparecem.

#Atualizar Ollama sem perder seus modelos

Em 29 de setembro de 2026, a página de versões do Ollama no GitHub marca a 0.34.4 como a versão estável mais recente, enquanto a 0.35.0 está listada como pré-lançamento. A tag 0.35.0, porém, já existe no Docker Hub, entre tags rc, de release candidate. Portanto, fixe um número de versão estável em vez de seguir a tag publicada mais recentemente: a atualização chega quando você decidir.

Com Compose, altere o número no arquivo e depois execute docker compose pull e docker compose up -d. Com docker run, baixe a nova imagem, remova o contêiner antigo e execute novamente o mesmo comando: desde que o volume seja o mesmo, os modelos são preservados. Por fim, verifique a versão com curl http://localhost:11434/api/version.

#Docker ou instalação nativa: a escolha

Os dois métodos resultam no mesmo servidor, na mesma porta. A tabela se baseia na documentação do Ollama; ela não compara velocidades, por falta de uma medição publicada que possa ser citada.

Docker e instalação nativa, critério a critério
CritérioOllama dentro do DockerOllama instalado nativamente
AtualizaçãoAlterar a tag e depois executar docker compose pullAutomático no macOS e Windows; no Linux, reexecutar o script de instalação
ModelosVolume do Docker ou pasta montada/usr/share/ollama/.ollama/models sous Linux
Registrosdocker logs ollamajournalctl -u ollama no Linux com systemd
Exposição à redeEscolha do parâmetro -p (127.0.0.1 ou todos os endereços)127.0.0.1 por padrão, modificável com OLLAMA_HOST
GPU no MacNenhum acessoInstalação direta na máquina

Escolha Docker para executar vários serviços em conjunto, fixar uma versão ou compartilhar um computador. Escolha a instalação nativa em um Mac ou quando o Docker não oferece vantagem para uso individual.


#Solução de problemas

could not select device driver "nvidia"
O NVIDIA Container Toolkit está faltando, ou o Docker não foi reiniciado após nvidia-ctk runtime configure. Refaça a configuração, reinicie o Docker e teste novamente com docker run --rm --gpus all ubuntu nvidia-smi.
O GPU funciona, depois Ollama volta para o processador
Sintoma documentado: o log indica falhas na detecção do GPU após um certo tempo. Ollama recomenda desativar a gestão cgroup do systemd no Docker: adicione "exec-opts": ["native.cgroupdriver=cgroupfs"] ao /etc/docker/daemon.json, depois reinicie o Docker.
Erros de GPU 3, 46, 100 ou 999
Recarregue o driver UVM com sudo rmmod nvidia_uvm seguido de sudo modprobe nvidia_uvm, ou reinicie a máquina.
Porta 11434 já em uso
Outra instância está escutando, muitas vezes o aplicativo nativo. Pare essa instância ou publique em outra porta com -p 127.0.0.1:11435:11434.
Respostas truncadas
O comprimento de contexto padrão depende da VRAM. Adicione -e OLLAMA_CONTEXT_LENGTH=8192 ao iniciar, monitorando a memória.
Download bloqueado por proxy
Passe -e HTTPS_PROXY=https://proxy.example.com para o contêiner. A documentação recomenda evitar HTTP_PROXY, pois pode interferir nos clientes.
Inacessível pela rede local
Normal com -p 127.0.0.1:11434:11434. Abra a porta somente com uma camada de autenticação protegendo o acesso.

#Perguntas frequentes

FAQ
Qual é a imagem Docker oficial do Ollama?+
É a imagem ollama/ollama no Docker Hub, publicada pelo Ollama. A tag latest indica a versão atual, uma tag numérica como 0.34.4 fixa uma versão, e o sufixo -rocm seleciona a imagem para GPUs AMD. Para uso a longo prazo, fixe uma tag numérica estável em vez de latest, para que uma atualização só ocorra quando você decidir.
Ollama pode usar a GPU dentro do Docker no Windows ou no Mac?+
No Windows, sim para uma placa NVIDIA, com o Docker Desktop usando o backend WSL2, um driver NVIDIA compatível com WSL2 e um kernel WSL2 atualizado (wsl --update). No macOS, não: o Docker Desktop não oferece passthrough nem emulação de GPU, portanto o contêiner roda no processador. Para usar o chip Apple, instale o Ollama diretamente na máquina.
Como atualizar o Ollama dentro do Docker sem perder os modelos?+
Os modelos ficam no volume, não no contêiner. Com Compose, altere a tag da imagem e depois execute docker compose pull e docker compose up -d. Com docker run, execute docker pull, docker rm -f ollama e execute novamente o mesmo comando com o mesmo volume. Evite docker compose down -v, que também remove os volumes nomeados do arquivo.
Como conectar Open WebUI a Ollama com Docker Compose?+
Coloque os dois serviços no mesmo arquivo Compose: eles compartilham uma rede em que cada um pode ser acessado pelo nome. No Open WebUI, a variável OLLAMA_BASE_URL recebe o valor http://ollama:11434. Se o Ollama estiver rodando no host, use host.docker.internal e verifique se ele não está escutando apenas em 127.0.0.1. O guia sobre Open WebUI detalha a configuração.
A API do Ollama dentro de um contêiner está protegida por senha?+
Não. A documentação do Ollama indica que a API local não exige autenticação. Com -p 11434:11434, o Docker abre a porta em todas as interfaces do host, e um firewall ufw não filtra essa porta. Publique em 127.0.0.1 ou coloque um proxy reverso com autenticação à frente da API, como explica o guia de segurança.

#Para se aprofundar

Você tem um Ollama funcional, isolado, com um modelo na GPU. Os próximos passos naturais: uma interface de conversa, medidas de segurança antes de qualquer compartilhamento pela rede e, depois, uma pilha de produção.

Este guia ajudou você?

Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.