YOLO Vision 2026:

Ultralytics için Docker Hızlı Başlangıç Kılavuzu#

Ultralytics Docker Package Visual

Bu kılavuz, Ultralytics projelerin için bir Docker ortamı kurmaya kapsamlı bir giriş niteliğindedir. Docker, uygulamaları konteynerler içinde geliştirmek, göndermek ve çalıştırmak için bir platformdur. Yazılımın nerede dağıtıldığına bakılmaksızın her zaman aynı şekilde çalışmasını sağlamak açısından özellikle faydalıdır. Daha fazla ayrıntı için Docker Hub üzerindeki Ultralytics Docker deposunu ziyaret et.

Docker Image Version Docker Pulls

Neler Öğreneceksin#

  • NVIDIA desteği ile Docker kurulumu
  • Ultralytics Docker imajlarının yüklenmesi
  • Ultralytics'i CPU veya GPU desteği ile bir Docker konteynerinde çalıştırma
  • Ultralytics tespit sonuçlarını göstermek için Docker ile bir görüntü sunucusu kullanma
  • Yerel dizinleri konteyner içine bağlama


Watch: How to Get started with Docker | Usage of Ultralytics Python Package inside Docker live demo 🎉

Ön koşullar#

  • Sisteminde Docker'ın kurulu olduğundan emin ol. Değilse, Docker'ın web sitesinden indirip kurabilirsin.
  • GPU hızlandırma için sisteminde bir NVIDIA GPU ve NVIDIA sürücülerinin kurulu olduğundan emin ol. CPU imajları NVIDIA donanımı gerektirmez.
  • NVIDIA Jetson cihazları kullanıyorsan uygun JetPack sürümünün kurulu olduğundan emin ol. Daha fazla ayrıntı için NVIDIA Jetson kılavuzuna göz at.

NVIDIA Desteği ile Docker Kurulumu (İsteğe Bağlı)#

Öncelikle, NVIDIA sürücülerinin düzgün yüklendiğini şu komutu çalıştırarak doğrula:

nvidia-smi

NVIDIA Container Toolkit Yükleme#

Şimdi, Docker konteynerlerinde GPU desteğini etkinleştirmek için NVIDIA Container Toolkit paketini kuralım:

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

Paket listelerini güncelle ve NVIDIA Container Toolkit'i yükle:

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

CDI Cihazlarını Docker ile Doğrula#

GPU CDI cihazlarının kullanılabilir olduğunu doğrulamak için nvidia-ctk cdi list komutunu çalıştır (araç setinin nvidia-cdi-refresh servisi, toolkit >= 1.18 sürümünde spesifikasyonu otomatik olarak oluşturur ve korur):

nvidia-ctk cdi list

nvidia.com/gpu=0 ve nvidia.com/gpu=all gibi girdiler görmelisin. Keşfedilen CDI cihazları ayrıca docker info içinde de görünür.


Ultralytics Docker İmajlarını Yükleme#

Ultralytics, Docker Hub üzerinde şu imajları yayınlar. Her imaj, Docker yayınlama iş akışı tarafından bağlantılı Dockerfile dosyasından oluşturulur.

EtiketPlatform ve amaçKaynak
latestGPU eğitimi ve çıkarımı için CUDA içeren Linux AMD64Dockerfile
latest-exportDönüştürme ve kıyaslama için CUDA ve dışa aktarma bağımlılıkları içeren Linux AMD64Dockerfile-export
latest-pythonCPU çıkarımı için hafif Linux AMD64 Python görüntüsüDockerfile-python
latest-python-exportDışa aktarma bağımlılıkları içeren Linux AMD64 CPU görüntüsüDockerfile-python-export
latest-cpuVarsayılan komut olarak Bash içeren Linux AMD64 CPU görüntüsüDockerfile-cpu
latest-jupyterJupyterLab ve Ultralytics eğitim not defterlerini içeren Linux AMD64 CPU görüntüsüDockerfile-jupyter
latest-arm64Apple silikon, Raspberry Pi ve diğer ARM64 sistemler için Linux ARM64 CPU imajıDockerfile-arm64
latest-nvidia-arm64Jetson AGX Thor, DGX Spark, JetPack 7 ve DGX OS için NVIDIA GPU destekli Linux ARM64Dockerfile-nvidia-arm64
latest-jetson-jetpack6JetPack 6 çalıştıran NVIDIA Jetson cihazlar için Linux ARM64Dockerfile-jetson-jetpack6
latest-jetson-jetpack5JetPack 5 çalıştıran NVIDIA Jetson cihazlar için Linux ARM64Dockerfile-jetson-jetpack5
latest-jetson-jetpack4JetPack 4 çalıştıran NVIDIA Jetson cihazlar için Linux ARM64Dockerfile-jetson-jetpack4
latest-runnerKendi kendine barındırılan GitHub Actions GPU çalıştırıcısı için Linux AMD64 CUDA görüntüsüDockerfile-runner
latest-runner-cpuKendi kendine barındırılan GitHub Actions CPU çalıştırıcısı için Linux AMD64 görüntüsüDockerfile-runner-cpu

latest ile başlayan etiketler en son yayınlanan main dalı derlemesini takip eder. Sürümlendirilmiş etiketler, latest önekini VERSION, VERSION-cpu veya VERSION-jetson-jetpack6 gibi bir Ultralytics sürümüyle değiştirir. Tekrarlanabilir bir ortam için sürümlendirilmiş bir etiket kullan.

En son imajı çekmek için:

# Pull the latest Ultralytics image from Docker Hub
sudo docker pull ultralytics/ultralytics:latest

Ultralytics'i Docker Konteynerinde Çalıştırma#

Ultralytics Docker konteynerini şu şekilde çalıştırabilirsin:

Sadece CPU kullanma#

# Run without GPU
sudo docker run -it --ipc=host ultralytics/ultralytics:latest-cpu

GPU'ları kullanma#

# Run with all GPUs
sudo docker run -it --ipc=host --device nvidia.com/gpu=all ultralytics/ultralytics:latest

# Run specifying which GPUs to use
sudo docker run -it --ipc=host --device nvidia.com/gpu=2 --device nvidia.com/gpu=3 ultralytics/ultralytics:latest

-it bayrağı sahte bir TTY atar ve stdin'i açık tutarak konteynerle etkileşime geçmeni sağlar. --ipc=host bayrağı, işlemler arasında bellek paylaşımı için gerekli olan ana makine IPC ad alanının paylaşımını etkinleştirir. --device nvidia.com/gpu=... bayrağı, konteynere CDI aracılığıyla ana makinenin GPU'larına erişim izni verir.

`--gpus all` yerine CDI kullan

Linux'ta CDI cihaz istekleri Docker >= 28.2.0 (CDI varsayılan olarak etkin) ve nvidia-container-toolkit >= 1.18 (otomatik CDI spec üretimi) gerektirir. GPU konteynerlerini çalıştırmadan önce daha eski Linux ana makinelerini güncelle. Eski --gpus all bayrağı, ana makine rutin paket güncellemeleri sırasında systemd'yi yeniden yüklediğinde (Failed to initialize NVML: Unknown Error) GPU erişimini kaybedebilir (nvidia-container-toolkit#48). CDI --device istekleri, cihaz düğümlerini konteyner yapılandırmasına dahil eder; böylece eğitim işçileri veya CI çalıştırıcıları gibi uzun süre çalışan konteynerler, yeniden yüklemeler boyunca GPU erişimini korur.

NVIDIA CDI cihazları orada mevcut olmadığından, Windows üzerinde Docker Desktop GPU desteği şu anda WSL 2 arka ucu ile --gpus all kullanmaktadır. Windows Linux systemd kullanmaz, bu nedenle yukarıdaki daemon-reload hatası geçerli değildir.

Dosya Erişilebilirliği Hakkında Not#

Konteyner içinde yerel makinendeki dosyalarla çalışmak için Docker birimlerini (volumes) kullanabilirsin:

# Mount a local directory into the container
sudo docker run -it --ipc=host --device nvidia.com/gpu=all -v /path/on/host:/path/in/container ultralytics/ultralytics:latest

/path/on/host ifadesini yerel makinenizdeki dizin yoluyla ve /path/in/container ifadesini Docker konteyneri içindeki istenen yol ile değiştir.

Eğitim Çıktılarını Kalıcı Hale Getirme#

Eğitim çıktıları varsayılan olarak konteyner içinde /ultralytics/runs/<task>/<name>/ konumuna kaydedilir. Bir ana makine dizini bağlanmazsa, konteyner kaldırıldığında çıktılar kaybolur.

Eğitim çıktılarını kalıcı hale getirmek için:

# Recommended: mount workspace and specify project path
sudo docker run --rm -it -v "$(pwd)":/w -w /w ultralytics/ultralytics:latest \
  yolo train model=yolo26n.pt data=coco8.yaml project=/w/runs

Bu, tüm eğitim çıktılarını ana makinenizdeki ./runs konumuna kaydeder.

Bir Docker Konteynerinde grafiksel kullanıcı arayüzü (GUI) uygulamalarını çalıştırma#

Yüksek Derecede Deneysel - Tüm Risk Kullanıcıya Aittir

Aşağıdaki talimatlar deneyseldir. Bir X11 soketini Docker konteyneri ile paylaşmak potansiyel güvenlik riskleri taşır. Bu nedenle, bu çözümü yalnızca kontrollü bir ortamda test etmeniz önerilir. Daha fazla bilgi için xhost kullanımına ilişkin bu kaynaklara göz atın(1)(2).

Docker öncelikli olarak arka plan uygulamalarını ve CLI programlarını konteynerleştirmek için kullanılır, ancak grafiksel programları da çalıştırabilir. Linux dünyasında grafiksel ekranları yöneten iki ana grafik sunucusu bulunur: X11 (X Window System olarak da bilinir) ve Wayland. Başlamadan önce, şu anda hangi grafik sunucusunu kullandığını belirlemek esastır. Bunu öğrenmek için bu komutu çalıştır:

env | grep -E -i 'x11|xorg|wayland'

X11 veya Wayland görüntü sunucusunun kurulumu ve yapılandırması bu kılavuzun kapsamı dışındadır. Eğer yukarıdaki komut hiçbir şey döndürmezse, devam etmeden önce sistemin için bunlardan birini çalışır hale getirmen gerekecektir.

GUI ile bir Docker Konteyneri Çalıştırma#

Örnek
GPU'ları kullan

GPU'lar kullanıyorsan komuta --device nvidia.com/gpu=all bayrağını ekleyebilirsin.

Eğer X11 kullanıyorsan, Docker konteynerinin X11 soketine erişmesine izin vermek için şu komutu çalıştırabilirsin:

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v ~/.Xauthority:/root/.Xauthority \
  -it --ipc=host ultralytics/ultralytics:latest

Bu komut DISPLAY ortam değişkenini ana makinenin ekranına ayarlar, X11 soketini bağlar ve .Xauthority dosyasını konteynere eşler. xhost +local:docker komutu, Docker konteynerinin X11 sunucusuna erişmesine izin verir.

GUI ile Docker Kullanımı#

Artık Docker konteynerinin içinde grafiksel uygulamalar görüntüleyebilirsin. Örneğin, bir YOLO26 modelinden tahminleri görselleştirmek için aşağıdaki CLI komutunu çalıştırabilirsin:

yolo predict model=yolo26n.pt show=True
Test Etme

Docker grubunun X11 sunucusuna erişimi olduğunu doğrulamanın basit bir yolu, xclock veya xeyes gibi bir GUI programı içeren bir konteyner çalıştırmaktır. Alternatif olarak, GNU-Linux ekran sunucunun X11 sunucusuna erişimini test etmek için bu programları Ultralytics Docker konteynerine de kurabilirsin. Herhangi bir sorunla karşılaşırsan, hata ayıklama bilgilerinin çıktısını etkinleştirerek sorun giderme sürecine yardımcı olan -e QT_DEBUG_PLUGINS=1 ortam değişkenini ayarlamayı düşün.

Docker GUI ile işin bittiğinde#

Erişimi iptal et

Her iki durumda da, işin bittiğinde Docker grubunun erişimini iptal etmeyi unutma.

xhost -local:docker
Görüntü sonuçlarını doğrudan Terminalde görmek ister misin?

Artık Ultralytics'i Docker ile kullanmaya hazırsın ve özelliklerinden yararlanmaya başlayabilirsin. Ultralytics web uygulamasını kendi sunucunda barındırmak için Platform On-Premise kılavuzuna göz at. Alternatif Python paket kurulum yöntemleri için Ultralytics hızlı başlangıç belgelerine bak.

SSS#

Ultralytics'i Docker ile nasıl kurarım?#

Ultralytics'i Docker ile kurmak için öncelikle sisteminizde Docker'ın kurulu olduğundan emin olun. Bir NVIDIA GPU'nuz varsa, GPU desteğini etkinleştirmek için NVIDIA Container Toolkit paketini kurun. Ardından, aşağıdaki komutu kullanarak en son Ultralytics Docker imajını Docker Hub'dan çekin:

sudo docker pull ultralytics/ultralytics:latest

Detaylı adımlar için Docker Hızlı Başlangıç Kılavuzumuza başvur.

Makine öğrenimi projeleri için Ultralytics Docker imajlarını kullanmanın faydaları nelerdir?#

Ultralytics Docker imajlarını kullanmak, farklı makinelerde tutarlı bir ortam sağlayarak aynı yazılımı ve bağımlılıkları çoğaltır. Bu, ekipler arası iş birliği yapmak, modelleri çeşitli donanımlarda çalıştırmak ve tekrarlanabilirliği sürdürmek için özellikle yararlıdır. Genel NVIDIA GPU eğitimi için latest kullanın veya bir NVIDIA Jetson cihazı için JetPack sürümünüze uyan imajı seçin. Tam imaj tablosuna bakın veya Ultralytics Docker Hub sayfasını keşfedin.

Ultralytics YOLO'yu GPU desteği olan bir Docker konteynerinde nasıl çalıştırabilirim?#

İlk olarak, NVIDIA Container Toolkit paketinin kurulu ve yapılandırılmış olduğundan emin olun. Ardından, GPU desteğiyle Ultralytics YOLO çalıştırmak için şu komutu kullanın:

sudo docker run -it --ipc=host --device nvidia.com/gpu=all ultralytics/ultralytics:latest # all GPUs

Bu komut, GPU erişimi olan bir Docker konteyneri kurar. Ek detaylar için Docker Hızlı Başlangıç Kılavuzuna bak.

Bir Docker konteynerinde görüntü sunucusu ile YOLO tahmin sonuçlarını nasıl görselleştiririm?#

Bir Docker konteynerinde GUI ile YOLO tahmin sonuçlarını görselleştirmek için Docker'ın görüntü sunucuna erişmesine izin vermen gerekir. X11 çalıştıran sistemler için komut şudur:

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v ~/.Xauthority:/root/.Xauthority \
  -it --ipc=host ultralytics/ultralytics:latest

Wayland çalıştıran sistemler için şunu kullan:

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
  -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
  --net=host -it --ipc=host ultralytics/ultralytics:latest

Daha fazla bilgiyi Docker Konteynerinde grafik kullanıcı arayüzü (GUI) uygulamalarını çalıştırma bölümünde bulabilirsin.

Ultralytics Docker konteynerine yerel dizinleri bağlayabilir miyim?#

Evet, -v bayrağını kullanarak yerel dizinleri Ultralytics Docker konteynerine bağlayabilirsin:

sudo docker run -it --ipc=host --device nvidia.com/gpu=all -v /path/on/host:/path/in/container ultralytics/ultralytics:latest

/path/on/host ifadesini yerel makinenizdeki dizin ile ve /path/in/container ifadesini konteyner içindeki istenen yol ile değiştir. Bu kurulum, konteyner içinde yerel dosyalarınızla çalışmanıza olanak tanır. Daha fazla bilgi için Dosya Erişilebilirliği Hakkında Not bölümüne bakın.

Yorumlar