Solution communautaire

NVIDIA Container Toolkit sur ZimaOS : configuration GPU actuelle

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.

Avec la version actuelle de ZimaOS, ne suivez pas les instructions Ubuntu qui installent NVIDIA Container Toolkit sur l’hôte avec apt. ZimaOS dispose de sa propre intégration du pilote et de l’environnement d’exécution NVIDIA. Sa documentation actuelle sur les applications Docker montre que les conteneurs GPU utilisent runtime: nvidia ainsi que NVIDIA_VISIBLE_DEVICES.

L’utilisateur à l’origine de la question en 2025 avait un serveur x86 générique équipé d’une GTX 1050 et avait bien remarqué que ZimaOS ne dispose pas d’un gestionnaire de paquets Debian classique. Exécuter la boîte à outils dans un conteneur Alpine ne peut pas non plus résoudre le problème d’environnement d’exécution de l’hôte : l’environnement d’exécution NVIDIA doit être présent au niveau de l’hôte Docker.

Vérifiez d’abord le pilote GPU de l’hôte

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

Si nvidia-smi ne parvient pas à communiquer avec le GPU, la configuration Docker n’est pas le premier problème à vérifier.

Vérifiez si Docker dispose déjà de l’environnement d’exécution NVIDIA

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

ZimaOS actuel démarre généralement Docker avec l’environnement d’exécution NVIDIA disponible, même sur les systèmes où il n’est pas activement utilisé.

Utilisez le modèle d’environnement d’exécution de ZimaOS

Le guide actuel de ZimaOS sur l’environnement d’exécution Docker NVIDIA indique :

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

Pourquoi l’installation de la boîte à outils dans un autre conteneur ne fonctionne pas

NVIDIA Container Toolkit s’intègre à Docker/containerd sur l’hôte. Le guide d’installation de NVIDIA Container Toolkit de NVIDIA utilise nvidia-ctk runtime configure pour modifier la configuration Docker de l’hôte et redémarrer Docker.

Ne copiez pas les instructions apt dans ZimaOS

Le guide d’installation de NVIDIA part du principe que les distributions compatibles, de type Debian/RPM, disposent d’un gestionnaire de paquets sur l’hôte. La version actuelle de ZimaOS n’est pas gérée de cette manière. Les instructions concernant les paquets sur l’hôte peuvent donc entrer en conflit avec l’image de l’appliance et son modèle de mise à jour.

Tester l’accès au GPU dans un conteneur

Une fois le pilote de l’hôte et l’environnement d’exécution opérationnels, utilisez un conteneur dont la compatibilité GPU est connue ou votre application cible pour confirmer que le périphérique est bien visible dans le conteneur.

La GTX 1050 a ses limites selon la charge de travail

Une GTX 1050 peut suffire pour certains travaux de transcodage NVENC/NVDEC, mais les charges de travail d’IA, comme le machine learning actuel d’Immich, peuvent imposer des exigences plus strictes en matière de CUDA, de VRAM, de modèles et de frameworks. « Docker détecte le GPU » ne garantit pas que toutes les applications le prennent en charge.

Sauvegarder la configuration des applications avant de modifier les paramètres de l’environnement d’exécution

Ne remplacez pas manuellement les fichiers de service Docker ni la configuration de l’environnement d’exécution à moins de pouvoir les rétablir. Une mauvaise configuration de l’environnement d’exécution de l’hôte peut empêcher toutes les applications Docker de démarrer, pas seulement le conteneur GPU.

Le guide actuel sur les conteneurs GPU explique plus en détail la séparation actuelle entre les logiciels et les anciennes versions.

Vérifier l’environnement d’exécution dans l’application cible

La commande nvidia-smi sur l’hôte prouve seulement que le pilote de l’hôte ZimaOS détecte la carte. Ouvrez un shell dans le conteneur réellement configuré pour utiliser le GPU et vérifiez-y le périphérique et l’environnement d’exécution ; sinon, une application peut basculer silencieusement sur le CPU alors que le GPU de l’hôte semble fonctionner normalement.

Distinguer le transcodage de la compatibilité avec l’IA

La prise en charge de NVENC/NVDEC, la capacité de calcul CUDA, la VRAM et les frameworks propres à chaque application sont des contraintes différentes. Une carte capable de gérer le transcodage avec Plex/Jellyfin peut être trop ancienne ou avoir trop peu de mémoire pour un modèle de ML actuel.

FAQ

Dois-je installer nvidia-container-toolkit avec apt sur ZimaOS ?

Non. Utilisez le chemin d’exécution NVIDIA actuel de ZimaOS plutôt que de traiter l’hôte comme s’il s’agissait d’Ubuntu.

Puis-je installer le kit d’outils dans Docker Alpine ?

Non. L’intégration à l’environnement d’exécution doit être présente sur l’hôte Docker.

Comment savoir si Docker détecte NVIDIA ?

Vérifiez docker info, la commande ou l’environnement d’exécution du démon Docker, puis vérifiez l’accès au GPU dans le conteneur cible.

Le fait que nvidia-smi fonctionne sur l’hôte prouve-t-il qu’Immich ML fonctionnera ?

Non. Cela prouve que le pilote hôte détecte la carte ; le conteneur et l’application doivent tout de même prendre en charge CUDA, la VRAM et l’environnement d’exécution.