Solução da comunidade

NVIDIA Container Toolkit no ZimaOS: Configuração atual da 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.

Na versão atual do ZimaOS, não siga as instruções para Ubuntu que instalam o NVIDIA Container Toolkit com apt no anfitrião. O ZimaOS tem a sua própria integração de controlador/runtime da NVIDIA e a documentação atual para aplicações Docker mostra contentores com GPU a usar runtime: nvidia juntamente com NVIDIA_VISIBLE_DEVICES.

O utilizador da fonte de 2025 tinha um servidor x86 genérico com uma GTX 1050 e constatou corretamente que o ZimaOS não dispõe de um gestor de pacotes Debian normal. Executar o toolkit dentro de um contentor Alpine também não resolve o problema do runtime no anfitrião — o runtime da NVIDIA tem de existir na camada do anfitrião Docker.

Verifique primeiro o controlador da GPU no anfitrião

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

Se o nvidia-smi não conseguir comunicar com a GPU, a configuração do Docker não é o primeiro problema.

Verifique se o Docker já tem o runtime da NVIDIA

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

Atualmente, o ZimaOS inicia frequentemente o Docker com o runtime da NVIDIA disponível, mesmo em sistemas onde este não é utilizado ativamente.

Utilize o modelo de runtime do ZimaOS

O atual guia do runtime Docker da NVIDIA no ZimaOS mostra:

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

Por que motivo instalar o toolkit noutro contentor não funciona

O NVIDIA Container Toolkit integra-se com o Docker/containerd no anfitrião. O próprio guia de instalação do NVIDIA Container Toolkit da NVIDIA utiliza nvidia-ctk runtime configure para modificar a configuração do Docker no anfitrião e reiniciar o Docker.

Não copie instruções com apt para o ZimaOS

O guia de instalação da NVIDIA pressupõe distribuições compatíveis ao estilo Debian/RPM, com gestores de pacotes no anfitrião. O ZimaOS atual não é mantido dessa forma, pelo que as instruções de instalação de pacotes no anfitrião podem entrar em conflito com a imagem do appliance e com o modelo de atualizações.

Teste o acesso à GPU num contentor

Assim que o controlador e o runtime do anfitrião estiverem a funcionar corretamente, utilize um contentor conhecido com suporte para GPU ou a aplicação pretendida para confirmar que o dispositivo está realmente visível dentro do contentor.

A GTX 1050 tem limitações para determinadas cargas de trabalho

Uma GTX 1050 pode ser suficiente para alguma transcodificação NVENC/NVDEC, mas as cargas de trabalho de IA, como a aprendizagem automática atual do Immich, podem exigir versões específicas do CUDA, mais VRAM e requisitos específicos do modelo e da framework. O facto de o Docker “ver a GPU” não garante que todas as aplicações sejam compatíveis com ela.

Faça uma cópia de segurança da configuração das aplicações antes de alterar as definições do runtime

Não substitua manualmente ficheiros de serviço do Docker nem a configuração do runtime, a menos que consiga reverter as alterações. Uma configuração incorreta do runtime no anfitrião pode interromper todas as aplicações Docker, não apenas o contentor com GPU.

O guia atual sobre contentores com GPU apresenta uma explicação mais completa dos limites entre o software antigo e o atual.

Verifique o runtime dentro da aplicação pretendida

O nvidia-smi no anfitrião apenas prova que o controlador do anfitrião ZimaOS deteta a placa. Abra uma shell no contentor real com suporte para GPU e verifique o dispositivo e o runtime nesse contentor; caso contrário, uma aplicação pode passar silenciosamente a utilizar a CPU enquanto a GPU do anfitrião parece estar a funcionar corretamente.

Separe a transcodificação da compatibilidade com IA

O suporte para NVENC/NVDEC, a capacidade de computação CUDA, a VRAM e as frameworks específicas das aplicações são limitações diferentes. Uma placa que lida com a transcodificação do Plex/Jellyfin pode, ainda assim, ser demasiado antiga ou ter pouca capacidade para um modelo de aprendizagem automática atual.

FAQ

Devo instalar o nvidia-container-toolkit com apt no ZimaOS?

Não. Utilize o caminho atual do runtime NVIDIA do ZimaOS, em vez de tratar o anfitrião como se fosse Ubuntu.

Posso instalar o toolkit dentro do Docker Alpine?

Não. A integração do runtime tem de existir no anfitrião Docker.

Como sei se o Docker deteta a NVIDIA?

Verifique o docker info, o comando/runtime do daemon Docker e, em seguida, confirme o acesso à GPU dentro do contentor pretendido.

O nvidia-smi no anfitrião prova que o Immich ML vai funcionar?

Não. Prova que o controlador do anfitrião deteta a GPU; o contentor e a aplicação continuam a necessitar de suporte compatível para CUDA, VRAM e runtime.