In esecuzione Ollama in Docker è il metodo più pulito per mantenere riproducibile un server locale di modelli: lo stesso comando funziona su un laptop, su un server domestico e su un server GPU noleggiato, senza che nulla venga installato o modificato sul sistema host. La configurazione è semplice, ma due dettagli — il passaggio della GPU al contenitore e la persistenza dei volumi — sono spesso causa di spreco di tempo.
Quick answer
Scarica ed esegui l’immagine ufficiale con un volume denominato, in modo che i modelli sopravvivano ai riavvii: docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama. Per una GPU NVIDIA, installa il NVIDIA Container Toolkit sull’host, riavvia Docker e aggiungi --gpus=all. Quindi scarica i modelli all’interno del contenitore con docker exec -it ollama ollama pull llama3.1. L’API è disponibile sulla porta 11434 esattamente come nell’installazione nativa.
I tre comandi fondamentali
| Obiettivo | Comando |
|---|---|
| Solo CPU | docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama |
| Con GPU NVIDIA | docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama |
| Scaricare un modello | docker exec -it ollama ollama pull llama3.1 |
Passaggio della GPU: la parte che più spesso fallisce
Un contenitore non può accedere alla tua GPU per impostazione predefinita. Su Linux devi installare il NVIDIA Container Toolkit sull’host, riavviare Docker e aggiungere --gpus=all. Verifica che funzioni correttamente dal contenitore eseguendo docker exec -it ollama nvidia-smi — se questo comando fallisce, Ollama verrà eseguito comunque, ma in modo silenzioso sulla CPU; potresti quindi concludere erroneamente che la tua GPU sia lenta, mentre in realtà non viene affatto utilizzata. Su Windows, la soluzione consiste nell’usare Docker Desktop con backend WSL2 e driver NVIDIA aggiornati. Gli utenti AMD devono usare l’immagine contrassegnata ROCm anziché quella predefinita, mentre le GPU Apple Silicon non possono essere passate a Docker in alcun modo: su Mac, esegui Ollama in modalità nativa.
Conservare i modelli tra un riavvio e l’altro
I file dei modelli sono molto grandi e richiedono tempo per essere scaricati nuovamente; un contenitore senza volume li elimina immediatamente al momento della rimozione. Il flag -v ollama:/root/.ollama usato in tutti i comandi sopra crea un volume denominato che persiste attraverso riavvii, aggiornamenti e modifiche dell’immagine. Se preferisci memorizzare i file in una posizione visibile, usa invece un bind-mount su una directory dell’host: -v /srv/ollama:/root/.ollama.
docker compose, per una configurazione che puoi conservare
Per qualsiasi configurazione permanente, un file docker-compose è preferibile rispetto a un lungo comando docker run: registra in un unico posto la riserva della GPU, il volume e la porta, riavvia automaticamente il servizio e consente in seguito di aggiungere facilmente un’interfaccia web. Il contenitore espone lo stesso endpoint compatibile con OpenAI su http://localhost:11434, quindi le applicazioni non riescono a distinguere tra installazione containerizzata e installazione nativa.
Convly’s take
Containerizza Ollama quando la macchina è un server, ma evita Docker se si tratta del tuo laptop. Su un server domestico o su un server GPU noleggiato, la configurazione basata su volume e docker-compose è effettivamente superiore: riproducibile, aggiornabile e facile da trasferire. Su un computer personale — specialmente su Mac, dove il passaggio della GPU a Docker è impossibile — Docker introduce un livello aggiuntivo che riduce le prestazioni senza offrire vantaggi significativi. Il problema più comune causato dall’utente è un contenitore che esegue silenziosamente la CPU perché il toolkit non è mai stato installato; esegui nvidia-smi all’interno del contenitore prima di effettuare qualsiasi benchmark.
Domande frequenti
Ollama in Docker supporta le GPU?
Sì, con NVIDIA tramite il NVIDIA Container Toolkit e --gpus=all, e con AMD usando l’immagine ROCm. Le GPU Apple Silicon non possono essere esposte a Docker: esegui Ollama in modalità nativa su macOS.
Dove vengono memorizzati i modelli nella configurazione Docker?
All’interno del contenitore, nella cartella /root/.ollama. Mappa tale percorso a un volume denominato o a una directory dell’host, altrimenti i modelli verranno eliminati al momento della rimozione del contenitore.
Ollama è più lento in Docker?
In modo trascurabile su Linux con un corretto passaggio della GPU. La sensazione di lentezza è quasi sempre dovuta al fatto che il contenitore sta girando sulla CPU perché la GPU non è stata passata correttamente.
Posso eseguire più modelli nello stesso contenitore?
Sì — puoi scaricarne quanti ne desideri; Ollama li carica su richiesta. Il limite è la memoria: solo i modelli attivamente caricati consumano RAM o VRAM.
Nuovo a questo strumento? Inizia dalla Guida all'installazione di Ollama, verifica i requisiti hardware in requisiti di sistema per Ollama, oppure ridimensionare un modello con il Calcolatore VRAM.

