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:
nvidia-smiFalls 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:
sudo docker run --rm hello-world3. 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:
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerDer erste Befehl aktualisiert die Docker-Daemon-Konfiguration. Für Rootless Docker gelten andere Schritte.
Zum Schluss die Testanwendung aus der NVIDIA-Dokumentation starten:
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smiErscheint 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.