Soluzione della community

NVIDIA Container Toolkit su ZimaOS: configurazione GPU attuale

A generic x86 ZimaOS user with a GTX 1050 wanted NVIDIA Container Toolkit for transcoding and Immich ML but could not use a normal package manager.

Con la versione attuale di ZimaOS, non seguire le istruzioni per Ubuntu che installano NVIDIA Container Toolkit con apt sull'host. ZimaOS ha una propria integrazione con il driver/runtime NVIDIA e la documentazione attuale sulle app Docker mostra container GPU che usano runtime: nvidia insieme a NVIDIA_VISIBLE_DEVICES.

L'utente del 2025 aveva un server x86 generico con una GTX 1050 e ha notato correttamente che ZimaOS non dispone di un normale gestore di pacchetti Debian. Eseguire il toolkit all'interno di un container Alpine non può risolvere neanche il problema del runtime sull'host: il runtime NVIDIA deve essere presente a livello dell'host Docker.

Verifica prima il driver GPU dell'host

nvidia-smi
lspci -nnk | grep -A3 -Ei 'vga|3d|display'

Se nvidia-smi non riesce a comunicare con la GPU, la configurazione di Docker non è il primo problema da controllare.

Verifica se Docker dispone già del runtime NVIDIA

docker info | grep -i nvidia
ps aux | grep '[d]ockerd'

Attualmente ZimaOS avvia spesso Docker con il runtime NVIDIA disponibile, anche sui sistemi in cui non viene utilizzato attivamente.

Usa il modello di runtime di ZimaOS

L'attuale guida al runtime Docker NVIDIA di ZimaOS mostra:

services:
  my-gpu-app:
    image: your/image
    runtime: nvidia
    ipc: host
    environment:
      NVIDIA_VISIBLE_DEVICES: all

Perché installare il toolkit in un altro container non funziona

NVIDIA Container Toolkit si integra con Docker/containerd sull'host. La guida ufficiale all'installazione di NVIDIA Container Toolkit usa nvidia-ctk runtime configure per modificare la configurazione Docker dell'host e riavviare Docker.

Non copiare le istruzioni di apt in ZimaOS

La guida all'installazione di NVIDIA presuppone distribuzioni supportate in stile Debian/RPM con gestori di pacchetti sull'host. La versione attuale di ZimaOS non viene gestita in questo modo, quindi le istruzioni per i pacchetti sull'host possono entrare in conflitto con l'immagine dell'appliance e il modello di aggiornamento.

Testare l'accesso alla GPU in un container

Quando il driver dell’host e il runtime funzionano correttamente, usa un container abilitato alla GPU di cui ti fidi o l’app di destinazione per confermare che il dispositivo sia effettivamente visibile all’interno del container.

La GTX 1050 ha limiti nei carichi di lavoro

Una GTX 1050 può essere adeguata per alcune attività di transcodifica NVENC/NVDEC, ma i carichi di lavoro IA, come il machine learning attuale di Immich, possono avere requisiti più stringenti per CUDA, VRAM, modelli e framework. «Docker rileva la GPU» non garantisce che ogni app la supporti.

Fai il backup della configurazione delle app prima di modificare le impostazioni del runtime

Non sostituire manualmente i file del servizio Docker o la configurazione del runtime, a meno che tu non possa ripristinarli. Una configurazione errata del runtime sull’host può bloccare tutte le app Docker, non solo il container GPU.

La guida attuale ai container GPU fornisce una panoramica più completa delle differenze tra software attuale e precedente.

Controlla il runtime nell’app di destinazione

nvidia-smi sull’host dimostra solo che il driver dell’host ZimaOS rileva la scheda. Apri una shell nel container effettivo abilitato alla GPU e verifica lì il dispositivo/runtime; altrimenti un’app può passare silenziosamente alla CPU, mentre la GPU dell’host sembra funzionare correttamente.

Distingui la transcodifica dalla compatibilità con l’IA

Il supporto NVENC/NVDEC, la capacità di calcolo CUDA, la VRAM e i framework specifici delle applicazioni sono vincoli diversi. Una scheda che gestisce la transcodifica Plex/Jellyfin potrebbe comunque essere troppo vecchia o avere una memoria insufficiente per un modello ML attuale.

Domande frequenti

Devo installare nvidia-container-toolkit con apt su ZimaOS?

No. Usa il percorso attuale del runtime NVIDIA di ZimaOS, invece di trattare l’host come se fosse Ubuntu.

Posso installare il toolkit all’interno di Docker Alpine?

No. L’integrazione del runtime deve essere presente sull’host Docker.

Come faccio a sapere se Docker rileva NVIDIA?

Controlla docker info, il comando/runtime del daemon Docker e poi verifica l’accesso alla GPU all’interno del container di destinazione.

Il fatto che nvidia-smi sull’host funzioni dimostra che il machine learning di Immich funzionerà?

No. Dimostra che il driver dell’host rileva la GPU; il container e l’applicazione devono comunque supportare CUDA, VRAM e runtime compatibili.