====== GPU v Dockeru (NVIDIA Container Toolkit) ======
Aby mohl kontejner Docker přistupovat k výkonu grafické karty (GPU), je nutné vytvořit most mezi ovladači hostitelského systému a izolovaným prostředím kontejneru. K tomu slouží **NVIDIA Container Toolkit**.
===== 1. Architektura řešení =====
Na rozdíl od běžných aplikací, kde je vše uvnitř kontejneru, u GPU aplikací:
* **Hostitelský OS:** Musí mít nainstalovány [[it:ovladace_a_cuda|NVIDIA ovladače]].
* **Docker Engine:** Musí mít nakonfigurovaný runtime od NVIDIA.
* **Kontejner:** Obsahuje pouze aplikaci a CUDA knihovny (Toolkit), nikoliv samotný ovladač.
===== 2. Instalace (Linux - Ubuntu/Debian) =====
Pokud již máte funkční Docker, postupujte takto:
==== Krok 1: Přidání repozitářů ====
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
==== Krok 2: Instalace toolkitu ====
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
==== Krok 3: Konfigurace a restart ====
Tento příkaz upraví soubor ''/etc/docker/daemon.json'':
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
===== 3. Použití v praxi =====
==== Jednorázové spuštění (CLI) ====
Pro přístup ke všem GPU použijte příznak ''--gpus all'':
docker run --rm --gpus all nvidia/cuda:12.0-base-ubuntu22.04 nvidia-smi
==== Docker Compose (Doporučeno) ====
V moderních verzích Docker Compose (v2.3+) definujeme GPU v sekci ''deploy'':
services:
ollama:
image: ollama/ollama
volumes:
- ./ollama:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
===== 4. Specifika pro Windows (WSL2) =====
Pokud používáte **Docker Desktop** na Windows:
* **Nainstalujte pouze ovladače na Windows.** Do WSL nic neinstalujte.
* Docker Desktop má NVIDIA Container Toolkit integrovaný.
* V nastavení Dockeru (Settings -> Resources -> WSL Integration) povolte integraci pro vaši distribuci.
===== 5. Troubleshooting (Řešení potíží) =====
^ Problém ^ Možná příčina ^ Řešení ^
| **"Unknown runtime: nvidia"** | Docker neví o NVIDIA runtime. | Znovu spusťte ''nvidia-ctk runtime configure''. |
| **"NVIDIA-SMI has failed"** | Verze ovladače na hostiteli je příliš stará. | [[it:aktualizace_ovladacu_pro_ai|Aktualizujte ovladač na hostiteli]]. |
| **GPU není vidět v Compose** | Chybí sekce ''deploy.resources''. | Zkontrolujte syntaxi v souboru yaml. |
---
**Související:**
* [[it:ovladace_a_cuda|Ovladače a CUDA]]
* [[it:hostovani_modelu|Lokální hostování modelů (Ollama)]]
* [[it:docker_best_practices|Docker ve firemním prostředí]]
---
**Autor:** @DevOps_Specialist
**Verze:** 2026.01