Solución de la comunidad

NVIDIA Container Toolkit en ZimaOS: configuración actual de la GPU

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.

En el ZimaOS actual, no sigas las instrucciones de Ubuntu que instalan NVIDIA Container Toolkit con apt en el host. ZimaOS cuenta con su propia integración de controladores/runtime de NVIDIA, y su documentación actual sobre aplicaciones Docker muestra contenedores con GPU mediante runtime: nvidia y NVIDIA_VISIBLE_DEVICES.

El usuario de la fuente de 2025 tenía un servidor x86 genérico con una GTX 1050 y observó correctamente que ZimaOS no dispone de un gestor de paquetes Debian normal. Ejecutar el toolkit dentro de un contenedor Alpine tampoco puede resolver el problema del runtime del host: el runtime de NVIDIA debe existir en la capa del host de Docker.

Verifica primero el controlador de GPU del host

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

Si nvidia-smi no puede comunicarse con la GPU, la configuración de Docker no es el primer problema.

Comprueba si Docker ya tiene el runtime de NVIDIA

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

El ZimaOS actual suele iniciar Docker con el runtime de NVIDIA disponible, incluso en sistemas donde no se utiliza activamente.

Usa el modelo de runtime de ZimaOS

La guía actual del runtime Docker de NVIDIA para ZimaOS muestra lo siguiente:

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

Por qué instalar el toolkit en otro contenedor no funciona

NVIDIA Container Toolkit se integra con Docker/containerd en el host. La propia guía de instalación de NVIDIA Container Toolkit utiliza nvidia-ctk runtime configure para modificar la configuración de Docker del host y reiniciar Docker.

No copies instrucciones de apt en ZimaOS

La guía de instalación de NVIDIA presupone distribuciones compatibles de estilo Debian/RPM con gestores de paquetes en el host. El ZimaOS actual no se mantiene de esa manera, por lo que las instrucciones de paquetes para el host pueden entrar en conflicto con la imagen del dispositivo y su modelo de actualizaciones.

Prueba el acceso a la GPU dentro de un contenedor

Cuando el controlador y el runtime del host funcionen correctamente, utiliza un contenedor conocido con compatibilidad con GPU o tu aplicación de destino para confirmar que el dispositivo realmente sea visible dentro del contenedor.

La GTX 1050 tiene limitaciones de carga de trabajo

Una GTX 1050 puede ser suficiente para ciertas tareas de transcodificación NVENC/NVDEC, pero las cargas de trabajo de IA, como el aprendizaje automático actual de Immich, pueden tener requisitos más estrictos de CUDA, VRAM, modelos y frameworks. Que «Docker vea la GPU» no garantiza que todas las aplicaciones sean compatibles con ella.

Haz una copia de seguridad de la configuración de las aplicaciones antes de cambiar los ajustes del runtime

No sustituyas manualmente los archivos de servicio de Docker ni la configuración del runtime a menos que puedas revertir los cambios. Una configuración incorrecta del runtime del host puede detener todas las aplicaciones Docker, no solo el contenedor con GPU.

La guía actual de contenedores con GPU ofrece una explicación más completa de los límites de software actuales y antiguos.

Comprueba el runtime dentro de la aplicación de destino

El comando nvidia-smi del host solo demuestra que el controlador del host de ZimaOS detecta la tarjeta. Abre un shell en el contenedor real compatible con GPU y verifica allí el dispositivo y el runtime; de lo contrario, una aplicación puede cambiar silenciosamente a la CPU aunque la GPU del host funcione correctamente.

Distingue entre transcodificación y compatibilidad con IA

La compatibilidad con NVENC/NVDEC, la capacidad de cómputo de CUDA, la VRAM y los frameworks específicos de cada aplicación son limitaciones diferentes. Una tarjeta que puede gestionar la transcodificación de Plex/Jellyfin puede seguir siendo demasiado antigua o tener muy poca memoria para un modelo de aprendizaje automático actual.

Preguntas frecuentes

¿Debo instalar nvidia-container-toolkit con apt en ZimaOS?

No. Utiliza la ruta actual del runtime de NVIDIA de ZimaOS en lugar de tratar el host como si fuera Ubuntu.

¿Puedo instalar el toolkit dentro de Docker Alpine?

No. La integración del runtime debe existir en el host de Docker.

¿Cómo sé si Docker detecta NVIDIA?

Comprueba docker info, el comando/runtime del daemon de Docker y, después, verifica el acceso a la GPU dentro del contenedor de destino.

¿El comando nvidia-smi del host demuestra que el aprendizaje automático de Immich funcionará?

No. Demuestra que el controlador del host detecta la GPU; el contenedor y la aplicación también necesitan compatibilidad con CUDA, VRAM y el runtime correspondiente.