İçeriğe geç
gpukiralama Sipariş

Teknik

Docker NVIDIA Container Toolkit Kurulumu: Ubuntu 22.04, 24.04 ve 26.04

NVIDIA Container Toolkit kurulumu dört adımdır: sürücüyü doğrulayın, NVIDIA'nın apt deposundan nvidia-container-toolkit paketini kurun, nvidia-ctk ile Docker'ı yapılandırıp yeniden başlatın ve docker run --rm --gpus all ubuntu nvidia-smi ile test edin. Sunucuya CUDA Toolkit kurmanız gerekmez. CDI, rootless Docker, Podman ve sık hataların çözümleri de rehberde.

gpukiralama.com.tr ekibi Güncelleme: 9 dk okuma

Docker NVIDIA Container Toolkit Kurulumu: Ubuntu 22.04, 24.04 ve 26.04
İçindekiler
  1. Kısa cevap
  2. Kurulumdan önce sunucuda ne hazır olmalı?
  3. NVIDIA Container Toolkit nasıl kurulur?
  4. Docker nasıl yapılandırılır?
  5. Kurulum nasıl test edilir?
  6. CDI nedir, ne zaman kullanılmalı?
  7. Rootless Docker'da ne değişir?
  8. containerd, Kubernetes ve Podman'da durum ne?
  9. Sık karşılaşılan hatalar nasıl çözülür?
  10. Bu iş için hangi GPU?
  11. Özet
  12. Kaynaklar

Kısa cevap

NVIDIA Container Toolkit, Docker konteynerlerinin sunucudaki NVIDIA GPU'ları kullanmasını sağlayan NVIDIA paketidir. Ubuntu 22.04, 24.04 veya 26.04'te kurulumu dört adımdır: sürücüyü doğrulayın, NVIDIA'nın apt deposundan nvidia-container-toolkit paketini kurun, sudo nvidia-ctk runtime configure --runtime=docker ile Docker'ı yapılandırıp yeniden başlatın ve docker run --rm --gpus all ubuntu nvidia-smi ile test edin. Ekim 2026 itibarıyla güncel sürüm 1.20.1'dir.

  • Sunucuya CUDA Toolkit kurmanız gerekmez; yalnızca NVIDIA sürücüsü gerekir. CUDA kütüphaneleri imajın içinden gelir.
  • CUDA 13.x imajları için sürücü sürümü 580 veya üzeri olmalıdır.
  • Toolkit 1.18'den beri CDI tanımını kendisi üretir; Docker 28.3.0 ve sonrasında GPU'yu --device nvidia.com/gpu=all ile de isteyebilirsiniz.

Kurulumdan önce sunucuda ne hazır olmalı?

Çalışan bir NVIDIA sürücüsü ve Docker Engine yeterlidir. NVIDIA'nın kendi deposundaki notta da belirtildiği gibi ana makineye (host) CUDA Toolkit kurmanıza gerek yoktur.

nvidia-smi          # GPU'lar ve sürücü sürümü listelenmeli
docker --version    # Docker Engine kurulu olmalı

nvidia-smi çalışmıyorsa önce sürücüyü kurun; Ubuntu'daki adımları PyTorch GPU kurulum rehberimizde anlattık. Docker'ı, Docker'ın resmi apt deposundan kurun: Ubuntu'nun docker.io paketi, Docker belgelerinde resmi paketlerle çakışan paketler arasında sayılır. NVIDIA'nın test ettiği dağıtımlar arasında Ubuntu 22.04, 24.04 ve 26.04 var.

Sürücü sürümü, konteynerde hangi CUDA sürümünü kullanabileceğinizi belirler. NVIDIA'nın CUDA sürüm notlarına göre eşleşme şöyle:

CUDA sürümü Karşılık gelen sürücü dalı
13.0 R580
13.1 R590
13.2 R595
13.3 R610
13.4 R615

CUDA alt sürüm uyumluluğu (minor version compatibility) sayesinde 13.x uygulamaları 580 ve üzeri sürücülerde çalışır; 13.4'ün yeni özellikleri ise R615 ister. nvidia-smi çıktısının üst satırındaki "CUDA Version" değeri, sürücünüzün desteklediği en yüksek CUDA sürümünü gösterir (NVIDIA'nın güncel belgelerinde bu alanın yeni adı "CUDA UMD Version").

NVIDIA Container Toolkit nasıl kurulur?

NVIDIA'nın apt deposunu ekleyip dört paketi aynı sürümde kurarsınız. Komutlar NVIDIA'nın kurulum kılavuzundan alındı:

sudo apt-get update && sudo apt-get install -y --no-install-recommends ca-certificates curl gnupg2

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

sudo apt-get update

export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.20.1-1
sudo apt-get install -y \
  nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}

nvidia-ctk --version

Sürümü sabitlemek, aynı kurulumu başka sunucularda tekrarlamayı kolaylaştırır; sabitlemeden sudo apt-get install -y nvidia-container-toolkit yazarsanız en son sürüm kurulur. Toolkit 1.18'den beri libnvidia-container* paketlerinin sürümü nvidia-container-toolkit* paketleriyle birebir aynı olmak zorunda, bu yüzden güncellerken dört paketi birlikte güncelleyin. Eski rehberlerde geçen nvidia-docker / nvidia-docker2 kurulumu artık gerekmiyor; bu paketler kullanımdan kalktı ve işlevleri yukarıdaki dört pakete taşındı.

Docker nasıl yapılandırılır?

nvidia-ctk, Docker'ın /etc/docker/daemon.json dosyasına NVIDIA çalışma zamanını (runtime) ekler; ardından Docker'ı yeniden başlatırsınız:

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
docker info | grep -i runtimes    # listede "nvidia" görünmeli

Komut, dosyadaki mevcut ayarlara dokunmadan şu bloğu ekler:

{
    "runtimes": {
        "nvidia": {
            "args": [],
            "path": "nvidia-container-runtime"
        }
    }
}

NVIDIA çalışma zamanını varsayılan yapmanız gerekiyorsa (ör. Docker kullanan bir Kubernetes kurulumunda) komuta --set-as-default ekleyin; dosyaya "default-runtime": "nvidia" satırı yazılır. Her komutta sudo yazmamak için kullanıcınızı docker grubuna ekleyebilirsiniz (sudo usermod -aG docker $USER), ancak Docker'ın uyardığı gibi bu grup root düzeyinde yetki verir.

Kurulum nasıl test edilir?

NVIDIA'nın örnek komutu düz bir Ubuntu imajında nvidia-smi çalıştırır; çıktı, sunucuda gördüğünüz tablonun aynısı olmalıdır:

sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

İmajda sürücü yoktur; toolkit, sürücü kütüphanelerini ve nvidia-smi aracını konteyner başlarken içeri bağlar. Ardından CUDA'lı bir imajla deneyin; bu test, imajın CUDA sürümünün sürücünüzle uyumlu olduğunu da doğrular:

docker run --rm --gpus all nvidia/cuda:13.0.3-base-ubuntu24.04 nvidia-smi

nvidia/cuda imajlarında latest etiketi yoktur; etiketi her zaman açıkça yazın. Belirli GPU'ları seçmek, Docker Compose ve imaj seçimi gibi günlük kullanım konuları için Docker'da GPU kullanımı rehberimize bakın.

Toolkit konteynere varsayılan olarak yalnızca compute ve utility sürücü yeteneklerini verir; CUDA ve nvidia-smi için bu yeterlidir. NVENC/NVDEC ile video kodlayacaksanız video yeteneğini de isteyin (GPU ile video transcoding rehberimiz). JupyterLab'i GPU'lu bir konteynerde açacaksanız portu yalnızca 127.0.0.1 adresine yayımlayın; ayrıntılar Jupyter ile bulut GPU rehberimizde.

CDI nedir, ne zaman kullanılmalı?

CDI (Container Device Interface), bir cihazın konteynere nasıl verileceğini tanımlayan açık bir standarttır; Docker, Podman ve containerd aynı tanım dosyasını okur. Toolkit 1.18'den beri nvidia-cdi-refresh adlı systemd servisi bu dosyayı (/var/run/cdi/nvidia.yaml) kurulumda, sürücü güncellemesinde ve her açılışta kendisi üretir.

nvidia-ctk cdi list
# nvidia.com/gpu=0
# nvidia.com/gpu=GPU-...
# nvidia.com/gpu=all

docker run --rm --device nvidia.com/gpu=all ubuntu nvidia-smi -L

Docker belgelerine göre CDI, Docker Engine 28.3.0 ve sonrasında varsayılan olarak açıktır. Daha eski bir sürüm kullanıyorsanız (CDI için en az Docker 25 gerekir) sudo nvidia-ctk runtime configure --runtime=docker --cdi.enabled komutu daemon.json'a "features": {"cdi": true} ekler; sonra Docker'ı yeniden başlatın.

CDI'ın pratik bir avantajı var: cgroup'ların systemd ile yönetildiği sistemlerde --gpus ile başlatılan konteynerler, sunucuda systemctl daemon-reload çalıştığında GPU erişimini kaybedebilir; CDI ile başlatılanlar bundan etkilenmez. MIG bölümlerini yeniden yapılandırdığınızda ya da sürücüyü kaldırdığınızda tanım dosyası kendiliğinden yenilenmez; sudo systemctl restart nvidia-cdi-refresh.service ile yenileyin.

Rootless Docker'da ne değişir?

Docker'ı root yetkisi olmadan (rootless) çalıştırıyorsanız yapılandırma kullanıcı dizininizdeki daemon.json'a yazılır ve toolkit'in cgroup yönetimi kapatılır. NVIDIA'nın kılavuzundaki üç komut:

nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json
systemctl --user restart docker
sudo nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place

NVIDIA, CDI'ın rootless konteynerlerle uyumluluğu artırdığını da belirtiyor; rootless kurulumlarda CDI'yı denemeye değer.

containerd, Kubernetes ve Podman'da durum ne?

Toolkit diğer konteyner motorlarıyla da çalışır; fark, yapılandırma komutunda ve GPU'yu isteme biçimindedir:

Motor Yapılandırma GPU isteme Not
Docker nvidia-ctk runtime configure --runtime=docker --gpus all En yaygın kullanım
Docker (CDI) Docker 28.3.0 ve sonrasında ek adım yok --device nvidia.com/gpu=all daemon-reload sonrası erişim kaybı yaşanmaz
Rootless Docker Yukarıdaki üç komut --gpus all Kullanıcıya ait daemon.json
Podman Ek adım yok, CDI tanımı yeterli --device nvidia.com/gpu=all Podman 4.1.0 ve sonrası
containerd (Kubernetes) nvidia-ctk runtime configure --runtime=containerd Kubernetes cihaz eklentisi Kümelerde NVIDIA GPU Operator'e bakın
nerdctl Ek adım yok --gpus=all Root'lu ve root'suz çalışır
CRI-O nvidia-ctk runtime configure --runtime=crio Kubernetes cihaz eklentisi Ayar ek bir dosyaya yazılır

containerd ve CRI-O'da yapılandırmadan sonra servisi yeniden başlatın (sudo systemctl restart containerd ya da crio). Podman için NVIDIA'nın test komutu:

podman run --rm --device nvidia.com/gpu=all --security-opt=label=disable ubuntu nvidia-smi -L

Sık karşılaşılan hatalar nasıl çözülür?

Hataların çoğu eksik yapılandırmadan, eski depo dosyalarından ya da sürücü ile imaj arasındaki sürüm farkından kaynaklanır:

Hata Nedeni Çözüm
could not select device driver "" with capabilities: [[gpu]] Toolkit kurulu değil ya da Docker kurulumdan sonra yeniden başlatılmadı Kurulum ve yapılandırma adımlarını tamamlayıp Docker'ı yeniden başlatın
apt-get update sırasında Conflicting values set for option Signed-By Eski kurulumlardan kalan ve aynı depoyu gösteren liste dosyaları (nvidia-docker.list gibi) Aşağıdaki komutla bulup silin
Çalışan konteynerde Failed to initialize NVML: Unknown Error systemd cgroup sürücüsü ve systemctl daemon-reload Konteyneri yeniden oluşturun; kalıcı çözüm için CDI kullanın ya da daemon.json'a "exec-opts": ["native.cgroupdriver=cgroupfs"] ekleyin
unsatisfied condition: cuda>=... Sürücü, imajın CUDA sürümü için eski Sürücüyü güncelleyin ya da daha düşük CUDA etiketli bir imaj seçin
groups: cannot find name for group ID ... Yalnızca görsel bir uyarı Yok sayabilirsiniz; cihaz erişimini etkilemez

"could not select device driver" hatası nasıl çözülür?

docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]] hatası, Docker'ın --gpus isteğini karşılayacak NVIDIA çalışma zamanını bulamadığı anlamına gelir. Sırayla şunları kontrol edin:

  1. Toolkit kurulu mu? nvidia-ctk --version bir sürüm numarası yazmalı; yazmıyorsa yukarıdaki kurulum adımlarını uygulayın.
  2. Docker yapılandırıldı mı? docker info | grep -i runtimes çıktısında nvidia görünmeli; görünmüyorsa sudo nvidia-ctk runtime configure --runtime=docker çalıştırın.
  3. Docker yeniden başlatıldı mı? Yapılandırmadan sonra sudo systemctl restart docker gerekir.
  4. Ayar doğru dosyaya mı yazıldı? Rootless Docker'da ayar /etc/docker/daemon.json dosyasına değil, ~/.config/docker/daemon.json dosyasına yazılmalıdır (rootless bölümüne bakın).

"Conflicting values set for option Signed-By" hatası

Çakışan liste dosyalarını bulmak için NVIDIA'nın önerdiği komut:

grep -l "nvidia.github.io" /etc/apt/sources.list.d/* | grep -vE "/nvidia-container-toolkit.list\$"

Sorun sürüyorsa: ayrıntılı günlük

Sorun sürüyorsa çalışma zamanının ayrıntılı günlüğünü açıp hatayı yeniden üretin:

sudo nvidia-ctk config --in-place \
    --set nvidia-container-runtime.log-level=debug \
    --set nvidia-container-runtime.debug=/var/log/nvidia-container-runtime.log

NVIDIA'nın sorun giderme sayfasındaki yol da aynı sonucu verir: /etc/nvidia-container-runtime/config.toml dosyasındaki debug satırının başındaki # işaretini kaldırın.

Bu iş için hangi GPU?

Bu rehberdeki adımlar sunduğumuz tüm modellerde aynıdır; GPU'lar size ayrılır, başka müşterilerle paylaşılmaz. Konteyner tabanlı geliştirme ve test için RTX PRO 4000 (24 GB, aylık $450), 7–14B parametreli modellerle çalışan servisler için L40S (48 GB, aylık $900) iyi başlangıç noktalarıdır. Tek siparişte en fazla 8 GPU alabilirsiniz. İş yüküne göre önerdiğimiz kartları hizmetler sayfamızda bulabilirsiniz. vLLM ya da SGLang'in hazır Docker imajlarıyla model sunacaksanız GPU ve bellek seçimini LLM inference sayfamızda anlattık.

Sunucu kaynakları GPU belleğine göre baştan bellidir: Her 4 GB GPU belleği için 1 CPU çekirdeği ve GPU belleğinin 1,5 katı RAM verilir; 1 TB SSD ve size özel bir IP adresi her siparişe dahildir. Büyük konteyner imajları ve veri setleri için disk ihtiyacınızı sipariş formundaki mesaj alanına yazın. Kiralama aylıktır (en az 1 ay); fiyatlar GPU başına, ABD doları cinsinden ve KDV hariçtir, fatura kesim tarihindeki TCMB satış kuruyla TL olarak düzenlenir; tüm modellerin fiyatları fiyat listesinde. Yalnızca birkaç saatlik bir deneme yapacaksanız saatlik bir bulut hizmeti daha ucuz olabilir.

Özet

  • Docker'da GPU kullanmak için ana makinede NVIDIA sürücüsü ve NVIDIA Container Toolkit yeterlidir; CUDA Toolkit gerekmez.
  • Kurulum sırası: apt deposu, dört paket (Ekim 2026'da 1.20.1), nvidia-ctk runtime configure --runtime=docker, Docker'ı yeniden başlatma, nvidia-smi testi.
  • CUDA 13.x imajları için sürücü 580 veya üzeri olmalıdır; 13.4'ün yeni özellikleri R615 ister.
  • Toolkit 1.18 ve sonrası CDI tanımını otomatik üretir; Docker 28.3.0+ ve Podman'da GPU --device nvidia.com/gpu=all ile istenebilir.
  • En sık hatalar eksik yapılandırma, eski depo dosyaları ve sürücü ile imaj arasındaki CUDA sürümü farkıdır.

Kaynaklar

Sık sorulan sorular

NVIDIA Container Toolkit olmadan Docker'da GPU kullanılabilir mi?

Hayır. Docker GPU'yu konteynere tek başına veremez; toolkit, konteyner başlarken sürücü kütüphanelerini ve GPU cihaz dosyalarını içeri bağlar. Ana makinede bunun dışında yalnızca NVIDIA sürücüsü gerekir, CUDA Toolkit gerekmez.

nvidia-docker veya nvidia-docker2 kurmam gerekir mi?

Hayır. nvidia-docker ve nvidia-docker2 kullanımdan kalktı; işlevleri nvidia-container-toolkit paketine taşındı. Güncel kurulumda toolkit paketlerini kurup Docker'ı nvidia-ctk ile yapılandırmanız yeterlidir.

--gpus ile --device nvidia.com/gpu=all arasındaki fark nedir?

--gpus, Docker'ın NVIDIA desteğini kullanan klasik yoldur. --device nvidia.com/gpu=all ise CDI standardıyla çalışır; Docker 28.3.0 ve sonrasında varsayılan olarak açıktır ve systemctl daemon-reload sonrasında GPU erişiminin kaybolması sorununu yaşamaz.

NVIDIA Container Toolkit nasıl güncellenir?

nvidia-container-toolkit, nvidia-container-toolkit-base, libnvidia-container-tools ve libnvidia-container1 paketlerini aynı sürüme birlikte güncelleyin. Toolkit 1.18'den beri bu paketlerin sürümlerinin birebir aynı olması gerekiyor.

Konteynerdeki CUDA sürümü sunucudaki sürücüden yeni olabilir mi?

Belli bir sınıra kadar evet: CUDA 13.x uygulamaları alt sürüm uyumluluğu sayesinde 580 ve üzeri sürücülerde çalışır. Sürücü, imajın istediği CUDA sürümü için fazla eskiyse konteyner 'unsatisfied condition: cuda>=...' hatasıyla başlamaz.

Kubernetes'te de aynı adımlar mı uygulanır?

Paket kurulumu aynıdır; containerd için yapılandırma komutu nvidia-ctk runtime configure --runtime=containerd olur ve ardından containerd yeniden başlatılır. Kubernetes kümeleri için NVIDIA ayrıca GPU Operator'ü sunar.

NVIDIA Container Toolkit hangi Ubuntu sürümlerinde çalışır?

NVIDIA'nın test ettiği Ubuntu sürümleri arasında 22.04, 24.04 ve 26.04 var; kurulum adımları üçünde de aynıdır. Docker Engine'i Ubuntu'nun docker.io paketinden değil, Docker'ın resmi apt deposundan kurun.

NVIDIA Container Toolkit nasıl kaldırılır?

nvidia-container-toolkit, nvidia-container-toolkit-base, libnvidia-container-tools ve libnvidia-container1 paketlerini sudo apt-get purge ile kaldırın. Ardından /etc/docker/daemon.json dosyasından nvidia çalışma zamanı bloğunu (varsa "default-runtime": "nvidia" satırını da) silip Docker'ı yeniden başlatın.

Bu iş için GPU sunucu mu arıyorsunuz?

Tüm modellerin aylık fiyatı sitede yazar; yıllık kiralamada %20 indirim uygulanır. Siparişinizden sonra 1 iş günü içinde proforma fatura gönderiyoruz.

İlgili yazılar

Teknik

PyTorch GPU Kurulumu: Sürücü, CUDA 13 ve GPU Kontrolü Adım Adım

PyTorch GPU kurulumu üç adımdır: NVIDIA sürücüsünü 580 veya üzerine getirin, sanal ortamda pip install torch torchvision çalıştırın ve torch.cuda.is_available() çağrısının True döndüğünü kontrol edin. CUDA Toolkit'i ayrıca kurmanız gerekmez; PyTorch kendi CUDA kütüphanelerini getirir. Windows, Mac, Docker ve sık hataların çözümleri de rehberde.

Teknik

Docker'da GPU Kullanımı: --gpus all, Compose, İmaj Seçimi ve MIG

Docker'da GPU kullanmak için sunucuda NVIDIA sürücüsü ve NVIDIA Container Toolkit kurulu olmalı; ardından docker run --gpus all yeterlidir, Compose'da gpus: all ya da deploy.resources.reservations.devices kullanılır. Belirli GPU seçimi, shm-size, imaj seçimi, MIG, izleme ve Windows'ta WSL2 bu rehberde.

Teknik

PyTorch Eğitimini GPU'da Hızlandırma: CUDA Optimizasyonu Rehberi

PyTorch eğitimini GPU'da hızlandırmak için önce ölçün: nvidia-smi ve torch.profiler, darboğazın veri yüklemede mi, CPU–GPU senkronizasyonunda mı yoksa hesaplamada mı olduğunu gösterir. Ardından bf16 karışık hassasiyet, TF32, hızlı DataLoader ayarları ve torch.compile ile başlayın. Kod örnekleri, Ekim 2026'da güncel olan PyTorch 2.14 belgelerine dayanır.