GPU nei container Docker
Il NVIDIA Container Toolkit permette ai container Docker di accedere alle GPU dell'host, essenziale per deploy containerizzati di servizi AI.
1. Installazione
# Aggiungere repo NVIDIA
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed "s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g" > /etc/apt/sources.list.d/nvidia-container-toolkit.list
apt update && apt install -y nvidia-container-toolkit
nvidia-ctk runtime configure --runtime=docker
systemctl restart docker
2. Verificare
docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi
3. Usare GPU in Docker Compose
version: "3.8"
services:
ollama:
image: ollama/ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
4. Selezionare GPU specifiche
# Solo GPU 0
docker run --gpus device=0 ...
# GPU 0 e 1
docker run --gpus device=0,1 ...
# Tutte le GPU
docker run --gpus all ...
5. Monitoraggio GPU nei container
# Vedere quali container usano la GPU
nvidia-smi --query-compute-apps=pid,name,used_memory --format=csv
# Correlare PID con container
docker top CONTAINER_NAME
Il Container Toolkit รจ essenziale per deploy scalabili: stesso container, stessa configurazione, qualsiasi server con GPU.