Hinzufügen von NVIDIA-GPU-Unterstützung zum Docker-Modell-Runner
Aktivieren Sie die GPU-Beschleunigung für Docker Model Runner mit NVIDIA CUDA-Unterstützung
Docker Model Runner ist Docker’s offizielles Tool zum lokalen Ausführen von KI-Modellen, aber die Aktivierung der NVidia-GPU-Beschleunigung in Docker Model Runner erfordert eine spezifische Konfiguration.
Im Gegensatz zu Standard-docker run-Befehlen unterstützt docker model run keine --gpus- oder -e-Flags, sodass die GPU-Unterstützung auf Ebene des Docker-Daemons und während der Runner-Installation konfiguriert werden muss.
Wenn Sie nach einer alternativen LLM-Hosting-Lösung mit einfacherer GPU-Konfiguration suchen, sollten Sie Ollama in Betracht ziehen, das eine integrierte GPU-Unterstützung und einfachere Einrichtung bietet. Docker Model Runner bietet jedoch eine bessere Integration in das Docker-Ökosystem und die OCI-Artifact-Verteilung.
Dieses schöne Bild wurde von AI-Modell Flux 1 dev generiert.
Voraussetzungen
Bevor Sie die GPU-Unterstützung konfigurieren, stellen Sie sicher, dass Sie Folgendes haben:
- NVIDIA-GPU mit installierten kompatiblen Treibern. Für Hilfe bei der Auswahl der richtigen GPU für KI-Arbeitslasten sehen Sie unseren Leitfaden zu Vergleich der NVidia-GPU-Spezifikationen für KI.
- NVIDIA Container Toolkit installiert (siehe NVIDIA RTX-Unterstützung für Docker)
- Docker Model Runner installiert (kann mit GPU-Unterstützung neu installiert werden)
Überprüfen Sie, ob Ihre GPU zugänglich ist:
nvidia-smi
Testen Sie den Docker-GPU-Zugriff:
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smi
Für weitere Docker-Befehle und Konfigurationsoptionen sehen Sie unseren Docker Cheatsheet.
Schritt 1: Konfigurieren des Docker-Daemons für den NVIDIA-Runtime
Docker Model Runner erfordert, dass der NVIDIA-Runtime als Standard-Runtime in der Docker-Daemon-Konfiguration festgelegt wird.
NVIDIA-Container-Runtime-Pfad finden
Zuerst ermitteln Sie, wo nvidia-container-runtime installiert ist:
which nvidia-container-runtime
Dies gibt typischerweise /usr/bin/nvidia-container-runtime aus. Notieren Sie sich diesen Pfad für den nächsten Schritt.
Konfigurieren des Docker-Daemons
Erstellen oder aktualisieren Sie /etc/docker/daemon.json, um NVIDIA als Standard-Runtime festzulegen:
sudo tee /etc/docker/daemon.json > /dev/null << 'EOF'
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
EOF
Wichtig: Wenn which nvidia-container-runtime einen anderen Pfad zurückgegeben hat, aktualisieren Sie den Wert "path" in der JSON-Konfiguration entsprechend.
Docker-Dienst neu starten
Wenden Sie die Konfiguration an, indem Sie Docker neu starten:
sudo systemctl restart docker
Konfiguration überprüfen
Bestätigen Sie, dass der NVIDIA-Runtime konfiguriert ist:
docker info | grep -i runtime
Sie sollten Default Runtime: nvidia in der Ausgabe sehen.
Schritt 2: Installieren von Docker Model Runner mit GPU-Unterstützung
Docker Model Runner muss mit expliziter GPU-Unterstützung installiert oder neu installiert werden. Der Runner-Container selbst muss die CUDA-fähige Version sein.
Aktuellen Runner stoppen (falls ausgeführt)
Wenn Docker Model Runner bereits installiert ist, stoppen Sie ihn zuerst:
docker model stop-runner
Installieren/Neu installieren mit CUDA-Unterstützung
Installieren oder installieren Sie Docker Model Runner mit CUDA-GPU-Unterstützung neu:
docker model reinstall-runner --gpu cuda
Dieser Befehl:
- Lädt die CUDA-fähige Version (
docker/model-runner:latest-cuda) anstelle der CPU-Only-Version herunter - Konfiguriert den Runner-Container für die Verwendung des NVIDIA-Runtimes
- Aktiviert die GPU-Beschleunigung für alle Modelle
Hinweis: Wenn Sie Docker Model Runner bereits ohne GPU-Unterstützung installiert haben, müssen Sie es mit dem Flag --gpu cuda neu installieren. Die Konfiguration des Docker-Daemons allein reicht nicht aus – der Runner-Container selbst muss die CUDA-fähige Version sein.
Verfügbare GPU-Backends
Docker Model Runner unterstützt mehrere GPU-Backends:
cuda- NVIDIA CUDA (am häufigsten für NVIDIA-GPUs)rocm- AMD ROCm (für AMD-GPUs)musa- Moore Threads MUSAcann- Huawei CANNauto- Automatische Erkennung (Standard, kann möglicherweise nicht korrekt funktionieren)none- CPU-Only
Für NVIDIA-GPUs verwenden Sie immer explizit --gpu cuda.
Schritt 3: GPU-Zugriff überprüfen
Nach der Installation überprüfen Sie, ob Docker Model Runner auf Ihre GPU zugreifen kann.
Runner-Container-GPU-Zugriff testen
Testen Sie den GPU-Zugriff innerhalb des Docker Model Runner-Containers:
docker exec docker-model-runner nvidia-smi
Dies sollte Ihre GPU-Informationen anzeigen und bestätigen, dass der Container GPU-Zugriff hat.
Runner-Status überprüfen
Überprüfen Sie, ob Docker Model Runner aktiv ist:
docker model status
Sie sollten sehen, dass der Runner aktiv ist und llama.cpp unterstützt.
Schritt 4: Modell mit GPU testen
Führen Sie ein Modell aus und überprüfen Sie, ob es die GPU verwendet.
Modell ausführen
Starten Sie eine Modellinferenz:
docker model run ai/qwen3:14B-Q6_K "who are you?"
GPU-Nutzung in den Protokollen überprüfen
Überprüfen Sie die Docker Model Runner-Protokolle auf GPU-Bestätigung:
docker model logs | grep -i cuda
Sie sollten Nachrichten sehen, die die GPU-Nutzung anzeigen:
using device CUDA0 (NVIDIA GeForce RTX 4080)- GPU-Gerät erkanntoffloaded 41/41 layers to GPU- Modellschichten auf GPU geladenCUDA0 model buffer size = 10946.13 MiB- GPU-SpeicherzuweisungCUDA0 KV buffer size = 640.00 MiB- Key-Value-Cache auf GPUCUDA0 compute buffer size = 306.75 MiB- Compute-Puffer auf GPU
GPU-Nutzung überwachen
In einem anderen Terminal überwachen Sie die GPU-Nutzung in Echtzeit:
nvidia-smi -l 1
Sie sollten sehen, dass die GPU-Speichernutzung und -auslastung zunehmen, wenn das Modell ausgeführt wird.
Für weitere erweiterte GPU-Überwachungsoptionen und -Tools sehen Sie unseren Leitfaden zu GPU-Überwachungsanwendungen in Linux / Ubuntu.
Problembehebung
Modell verwendet weiterhin CPU
Wenn das Modell weiterhin auf der CPU läuft:
-
Docker-Daemon-Konfiguration überprüfen:
docker info | grep -i runtimeSollte
Default Runtime: nvidiaanzeigen -
Runner-Container-Runtime überprüfen:
docker inspect docker-model-runner | grep -A 2 '"Runtime"'Sollte
"Runtime": "nvidia"anzeigen -
Runner mit GPU-Unterstützung neu installieren:
docker model reinstall-runner --gpu cuda -
Protokolle auf Fehler überprüfen:
docker model logs | tail -50
GPU wird nicht erkannt
Wenn die GPU nicht erkannt wird:
-
Überprüfen Sie, ob das NVIDIA Container Toolkit installiert ist:
dpkg -l | grep nvidia-container-toolkit -
Testen Sie den GPU-Zugriff mit Standard-Docker:
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smiFür die Problembehandlung von Docker-Problemen beziehen Sie sich auf unseren Docker Cheatsheet.
-
Überprüfen Sie die NVIDIA-Treiber:
nvidia-smi
Leistungsprobleme
Wenn die GPU-Leistung schlecht ist:
-
Überprüfen Sie die GPU-Auslastung:
nvidia-smiAchten Sie auf einen hohen Prozentsatz der GPU-Auslastung
-
Überprüfen Sie, ob die Modellschichten auf der GPU liegen:
docker model logs | grep "offloaded.*layers to GPU"Alle Schichten sollten auf die GPU ausgelagert werden
-
Überprüfen Sie auf Speicherprobleme:
nvidia-smiStellen Sie sicher, dass der GPU-Speicher nicht erschöpft ist
Best Practices
-
GPU-Backend immer explizit angeben: Verwenden Sie
--gpu cudaanstelle von--gpu autofür NVIDIA-GPUs, um eine korrekte Konfiguration sicherzustellen. -
Konfiguration nach Änderungen überprüfen: Überprüfen Sie immer
docker info | grep -i runtimenach der Änderung der Docker-Daemon-Einstellungen. -
GPU-Nutzung überwachen: Verwenden Sie
nvidia-smi, um die GPU-Speicher- und -Nutzung während der Modellinferenz zu überwachen. Für erweiterte Überwachungstools sehen Sie unseren Leitfaden zu GPU-Überwachungsanwendungen in Linux / Ubuntu. -
Protokolle regelmäßig überprüfen: Überprüfen Sie
docker model logs, um sicherzustellen, dass die Modelle GPU-Beschleunigung verwenden. -
Geignete Modellgrößen verwenden: Stellen Sie sicher, dass Ihre GPU über ausreichend Speicher für das Modell verfügt. Verwenden Sie quantisierte Modelle (Q4, Q5, Q6, Q8) für eine bessere GPU-Speichereffizienz. Für Hilfe bei der Auswahl der richtigen GPU für Ihre KI-Arbeitslasten sehen Sie unseren Leitfaden zu Vergleich der NVidia-GPU-Spezifikationen für KI.
Nützliche Links
- Docker Model Runner Cheatsheet
- Docker Model Runner Offizielle Dokumentation
- NVIDIA Container Toolkit Installationshandbuch
- Docker Model Runner vs Ollama Vergleich
- Ollama Cheatsheet - Alternative LLM-Hosting-Lösung mit integrierter GPU-Unterstützung
- Docker Cheatsheet - Vollständige Referenz für Docker-Befehle und -Konfiguration
- GPU-Überwachungsanwendungen in Linux / Ubuntu - Liste und Vergleich von NVIDIA-GPU-Überwachungstools
- Vergleich der NVidia-GPU-Spezifikationen für KI - Leitfaden zur Auswahl der richtigen GPU für KI-Arbeitslasten