GPU in Docker nutzen
Was dieser Artikel über GPU in Docker behandelt
- Warum GPUs in Docker wichtig sind.
- NVIDIA Container Toolkit installieren.
- ROCm und AMD-GPUs.
- Docker-Run und Compose-Konfiguration.
- Fehlerbehebung bei GPU-Erkennung.
Einleitung: GPU in Docker nutzen
Viele KI- und Rechenanwendungen brauchen eine GPU. Docker isoliert Anwendungen, aber dank moderner Container-Technologien kann man GPUs trotzdem in Container durchreichen. NVIDIA bietet dafür das NVIDIA Container Toolkit, AMD setzt auf ROCm. Wer GPU in Docker richtig einbindet, kann Container-Anwendungen mit voller Grafikbeschleunigung betreiben.
Dieser Artikel erklärt, wie NVIDIA- und AMD-GPUs in Docker verfügbar gemacht werden.
Wichtige Begriffe
- NVIDIA Container Toolkit: Treiber und Runtime für Docker.
- ROCm: AMDs Open-Source-Plattform für GPU-Computing.
- runtime: Container-Runtime, die GPU freigibt.
- driver: Treiber auf dem Host.
- CUDA: NVIDIAs Compute-Plattform.
- HIP: AMDs Gegenstück zu CUDA.
- /dev/nvidia0: NVIDIA-Gerätedatei.
- /dev/dri: AMD/Intel-Gerätedateien.
- capabilities: Fähigkeiten des GPU-Devices.
NVIDIA vorbereiten
- NVIDIA-Treiber installieren.
- NVIDIA Container Toolkit installieren:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
NVIDIA testen
docker run --rm --gpus all nvidia/cuda:12-base nvidia-smi
Docker Run mit GPU
docker run --rm --gpus all \
-v ollama:/root/.ollama \
-p 11434:11434 \
ollama/ollama
Docker Compose für NVIDIA
services:
ollama:
image: ollama/ollama
ports:
- "11434:11434"
volumes:
- ollama:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
volumes:
ollama:
AMD/ROCm vorbereiten
- AMDGPU-Treiber installieren.
- ROCm-Pakete installieren.
- Container mit
/dev/driund/dev/kfdstarten.
AMD testen
docker run --rm --device /dev/kfd --device /dev/dri \
ollama/ollama:rocm ollama --version
Docker Compose für AMD
services:
ollama:
image: ollama/ollama:rocm
devices:
- /dev/kfd
- /dev/dri
volumes:
- ollama:/root/.ollama
ports:
- "11434:11434"
volumes:
ollama:
Welche GPUs unterstützt werden
NVIDIA
- Maxwell und neuer.
- Volta, Turing, Ampere, Ada Lovelace.
- Volle CUDA-Unterstützung.
AMD
- RDNA und RDNA2 mit ROCm.
- Einige ältere Radeon-Modelle.
- Nicht alle Consumer-Karten offiziell.
Intel
- Arc und einige integrierte GPUs.
- Unterstützung wächst, aber noch weniger verbreitet.
GPU prüfen im Container
docker exec ollama nvidia-smi
Oder bei AMD:
docker exec ollama rocminfo
Fehlerbehebung
- nvidia-smi nicht gefunden: Toolkit nicht installiert.
- Docker erkennt keine GPU: Runtime nicht konfiguriert.
- Treiber zu alt: NVIDIA-Treiber aktualisieren.
- ROCm Fehler: Passende ROCm-Version prüfen.
- Kein /dev/dri: Treiber oder Berechtigungen prüfen.
- OOM: Container VRAM-Limit beachten.
Tipps
- Treiber und Toolkit auf neuestem Stand halten.
- Base-Images mit passender CUDA/ROCm-Version nutzen.
nvidia-smivorher auf Host prüfen.- Für Intel spezielle Images suchen.
- Compose-Syntax je nach Docker-Version anpassen.
Weiterführende Links und Infos
- BotServ.de Ollama in Docker
- BotServ.de Docker GPU-Passthrough
- BotServ.de Docker Container-Runtime
- BotServ.de GPU für lokale KI kaufen
FAQ: GPU in Docker
Brauche ich spezielle Treiber im Container? Nein, der Host-Treiber wird genutzt. Das Toolkit sorgt für die Weitergabe.
Funktioniert GPU in Docker bei Windows? Nur mit WSL2 und NVIDIA-GPUs, nicht nativ.
Wie prüfe ich GPU im Container?
Mit nvidia-smi oder rocminfo.
Warum erkennt Docker die GPU nicht? Meist fehlt das NVIDIA Container Toolkit oder die Docker-Runtime.
Kann ich mehrere GPUs zuweisen?
Ja, mit --gpus '"device=0,1"' oder count: all.
Quellen und weiterführende Literatur
- NVIDIA Container Toolkit: https://github.com/NVIDIA/nvidia-container-toolkit
- ROCm: https://rocm.docs.amd.com/
- Docker GPU: https://docs.docker.com/compose/gpu-support/
Zusammenfassung: GPU in Docker nutzen
GPUs lassen sich mit dem NVIDIA Container Toolkit oder ROCm komfortabel in Docker-Container durchreichen. NVIDIA bietet dabei den reifsten Support, AMD mit ROCm funktioniert bei passenden Karten ebenfalls. Wichtig sind aktuelle Host-Treiber, korrekte Runtime-Konfiguration und die richtigen Compose-Einstellungen. Wer nvidia-smi oder rocminfo im Container zum Laufen bringt, kann GPU-beschleunigte Anwendungen wie Ollama in Docker nutzen.


