Zum Inhalt springen
Kurzer Hinweis: flozi00 TechHub ist ein Solo-Nebenprojekt neben einem Vollzeitjob — persönliche Lernnotizen, keine offiziellen Aussagen. Kritische Schritte selbst prüfen.

NVIDIA-GPU-Container unter Ubuntu 24.04

Host-Treiber, Docker Engine und NVIDIA Container Toolkit anhand aktueller offizieller Anleitungen installieren und GPU-Zugriff prüfen.

1 Min. Lesezeitflozi00
linuxubuntunvidiadockergpuguide

Diese Anleitung gilt für Ubuntu 24.04 mit NVIDIA-GPU und Docker Engine. Drei Komponenten haben verschiedene Aufgaben: Der Host-Treiber betreibt die GPU, Docker Engine startet Container und das NVIDIA Container Toolkit stellt GPU-Geräte und Treiber im Container bereit. Das vollständige CUDA-Entwicklungspaket auf dem Host ist zum bloßen Ausführen CUDA-fähiger Container nicht erforderlich; es wird nur benötigt, wenn CUDA-Programme auf dem Host kompiliert werden sollen.

1. Host-Treiber installieren und prüfen

Folge der Ubuntu-Anleitung für NVIDIA-Treiber. Sie unterscheidet zwischen Desktop-Einsatz und Compute/Server und berücksichtigt die erkannte Hardware. Ein bestimmter Treiberzweig oder die Variante mit offenem Kernelmodul passt nicht zu jeder NVIDIA-GPU. Nach Installation und Neustart prüfen:

bash
nvidia-smi

Falls das fehlschlägt, muss zuerst der Host-Treiber funktionieren. Docker kann einen nicht initialisierenden Treiber nicht ersetzen. Bei NVSwitch-Systemen hilft zusätzlich NVIDIAs Fabric-Manager-Anleitung bei passenden Komponenten und Dienstprotokollen.

2. Docker Engine installieren

Nutze die aktuelle Ubuntu-Anleitung von Docker mit dem offiziellen apt-Repository, den aktuellen Paketnamen und der Prüfung auf Konflikte. Repository-Einträge und verfügbare Versionen können sich ändern; die gepflegte Anleitung ist dafür die maßgebliche Quelle. Docker zunächst unabhängig von der GPU prüfen:

bash
sudo docker run --rm hello-world

3. NVIDIA Container Toolkit einrichten

Die offizielle Installationsanleitung von NVIDIA beschreibt das signierte Repository und die Installation von nvidia-container-toolkit. Für einen regulären Docker-Dienst mit Root-Rechten dokumentiert NVIDIA anschließend:

bash
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Der erste Befehl aktualisiert die Docker-Daemon-Konfiguration. Für Rootless Docker gelten andere Schritte.

Zum Schluss die Testanwendung aus der NVIDIA-Dokumentation starten:

bash
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

Erscheint die GPU-Tabelle, kann der Container auf den NVIDIA-Treiber des Hosts zugreifen. Daraus folgt noch nicht, dass jede CUDA-Anwendung oder jedes Image mit diesem Treiber kompatibel ist; deren CUDA-Anforderungen müssen getrennt geprüft werden.

Bei CUDA-Initialisierungsfehlern auf einem System mit mehreren GPUs hilft die Diagnoseanleitung.