====== 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