Ollama su docker

1. Prerequisiti

Verifica che i driver NVIDIA siano installati:

nvidia-smi

Dovresti vedere la tua GPU e la versione del driver.


2. Installa Docker

sudo apt update
sudo apt install -y docker.io docker-compose-plugin
sudo systemctl enable docker
sudo systemctl start docker

Aggiungi il tuo utente al gruppo docker:

sudo usermod -aG docker $USER

Poi esegui logout/login.


3. Installa NVIDIA Container Toolkit

Aggiungi il repository:

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

Installa:

sudo apt update
sudo apt install -y nvidia-container-toolkit

Configura Docker:

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Test:

docker run --rm --gpus all ubuntu nvidia-smi

Se visualizzi la GPU, sei pronto.


4. Crea la cartella di Ollama

mkdir -p ~/ollama
cd ~/ollama

5. Crea il file docker-compose.yml

services:
ollama:
image: ollama/ollama:latest
container_name: ollama

ports:
“11434:11434”

volumes:
– ollama_data:/root/.ollama

restart: unless-stopped

deploy:
resources:
reservations:
devices:
– driver: nvidia
count: all
capabilities: [gpu]

volumes:
ollama_data:


6. Avvia Ollama

docker compose up -d

Verifica:

docker ps

7. Scarica un modello

Ad esempio Qwen 2.5 7B:

docker exec -it ollama ollama pull qwen2.5:7b

Oppure:

docker exec -it ollama ollama pull qwen3:8b

8. Verifica che usi la GPU

Lancia:

docker exec -it ollama ollama run qwen2.5:7b

In un altro terminale:

watch -n 1 nvidia-smi

Dovresti vedere memoria GPU occupata e utilizzo della GPU


comandi Ollama sotto docker

Se Ollama è in esecuzione dentro un container Docker chiamato ollama, puoi vedere tutti i modelli installati con:

docker exec -it ollama ollama list

———————————-inizio in caso blackout

Ricrea Ollama con la GTX 1650

Esegui:

 
docker stop ollama
docker rm ollama
 

Poi ricrea:

 
docker run -d \
--name ollama \
--restart always \
--gpus all \
-e NVIDIA_VISIBLE_DEVICES=all \
-e NVIDIA_DRIVER_CAPABILITIES=compute,utility \
-p 11434:11434 \
-v ollama:/root/.ollama \
ollama/ollama
 

Verifica che la GPU sia assegnata al container

Dopo:

 
docker inspect ollama | grep -i runtime -A5
 

e:

 
docker exec -it ollama nvidia-smi

——————————–fine aggiornamento blackout

Rimuovere un modello

docker exec -it ollama ollama rm qwen2.5:7b
Entrare nella shell del container
docker exec -it ollama bash
e poi eseguire direttamente:
ollama list
Se vuoi verificare anche quanto spazio occupano i modelli nel volume Docker:
docker system df -v
oppure:
docker exec -it ollama du -sh /root/.ollama/models

—————————————————-


Aggiornare il container

1. Controlla l’immagine attuale

 
docker ps
 

Dovresti vedere qualcosa come:

 
ghcr.io/open-webui/open-webui:main
 

2. Scarica la nuova versione

 
docker pull ghcr.io/open-webui/open-webui:main
 

3. Elimina il vecchio container

 
docker rm -f open-webui
 

Questo non elimina il volume open-webui.


4. Ricrea il container

Con gli stessi parametri usati la prima volta:

 
docker run -d \
--name open-webui \
--restart unless-stopped \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
 

Tags:

Comments

Lascia un commento