Link to this sectionUltralytics için Docker Hızlı Başlangıç Kılavuzu#
Bu kılavuz, Ultralytics projelerin için bir Docker ortamı kurmaya yönelik kapsamlı bir giriş niteliğindedir. Docker, uygulamaları konteynerler içinde geliştirmek, dağıtmak ve çalıştırmak için kullanılan bir platformdur. Özellikle yazılımın nerede çalıştırılırsa çalıştırılsın her zaman aynı şekilde çalışmasını sağlamak için oldukça faydalıdır. Daha fazla detay için Docker Hub üzerindeki Ultralytics Docker deposunu ziyaret et.
Link to this sectionNeler Öğ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 🎉
Link to this sectionÖn koşullar#
- Sisteminde Docker'ın kurulu olduğundan emin ol. Eğer değilse, Docker'ın web sitesinden indirip yükleyebilirsin.
- Sisteminde bir NVIDIA GPU bulunduğundan ve NVIDIA sürücülerinin yüklü olduğundan emin ol.
- NVIDIA Jetson cihazları kullanıyorsan, uygun JetPack sürümünün yüklü olduğundan emin ol. Daha fazla detay için NVIDIA Jetson kılavuzuna başvur.
Link to this sectionNVIDIA Desteği ile Docker Kurulumu#
Öncelikle, NVIDIA sürücülerinin düzgün yüklendiğini şu komutu çalıştırarak doğrula:
nvidia-smiLink to this sectionNVIDIA Container Toolkit Yükleme#
Şimdi, Docker konteynerlerinde GPU desteğini etkinleştirmek için NVIDIA Container Toolkit aracını yükleyelim:
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.listPaket listelerini güncelle ve nvidia-container-toolkit paketini kur:
sudo apt-get updatenvidia-container-toolkit aracının en son sürümünü yükle:
sudo apt-get install -y nvidia-container-toolkit \
nvidia-container-toolkit-base libnvidia-container-tools \
libnvidia-container1İsteğe bağlı: nvidia-container-toolkit'in belirli bir sürümünü kur
İsteğe bağlı olarak, NVIDIA_CONTAINER_TOOLKIT_VERSION ortam değişkenini ayarlayarak nvidia-container-toolkit'in belirli bir sürümünü kurabilirsin:
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-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}sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerLink to this sectionDocker ile NVIDIA Çalışma Zamanını Doğrula#
Run docker info | grep -i runtime to ensure that nvidia appears in the list of runtimes:
docker info | grep -i runtimeLink to this sectionUltralytics Docker İmajlarını Yükleme#
Ultralytics, çeşitli platformlar ve kullanım durumları için optimize edilmiş birkaç Docker imajı sunar:
- Dockerfile: Eğitim için ideal, GPU imajı.
- Dockerfile-arm64: Raspberry Pi gibi cihazlar için uygun, ARM64 mimarisi için.
- Dockerfile-cpu: Çıkarım (inference) ve GPU olmayan ortamlar için sadece CPU sürümü.
- Dockerfile-jetson-jetpack4: Optimized for NVIDIA Jetson devices running NVIDIA JetPack 4.
- Dockerfile-jetson-jetpack5: Optimized for NVIDIA Jetson devices running NVIDIA JetPack 5.
- Dockerfile-jetson-jetpack6: Optimized for NVIDIA Jetson devices running NVIDIA JetPack 6.
- Dockerfile-jupyter: Tarayıcıda JupyterLab kullanarak etkileşimli geliştirme için.
- Dockerfile-nvidia-arm64: JetPack 7.0 ve DGX OS destekleyen Jetson AGX Thor ve DGX Spark gibi NVIDIA ARM64 cihazları için.
- Dockerfile-python: Hafif uygulamalar için minimal Python ortamı.
- Dockerfile-python-export: YOLO model dönüştürme için tam dışa aktarma yetenekleriyle genişletilmiş minimal Python imajı.
- Dockerfile-conda: Miniconda3 ve Conda aracılığıyla yüklenmiş Ultralytics paketini içerir.
- Dockerfile-export: Model dönüştürme ve kıyaslama (benchmarking) için tüm dışa aktarma formatı bağımlılıkları önceden yüklenmiş GPU imajı.
En son imajı çekmek için:
# Set image name as a variable
t=ultralytics/ultralytics:latest
# Pull the latest Ultralytics image from Docker Hub
sudo docker pull $tLink to this sectionUltralytics'i Docker Konteynerinde Çalıştırma#
Ultralytics Docker konteynerini şu şekilde çalıştırabilirsin:
Link to this sectionSadece CPU kullanma#
# Run without GPU
sudo docker run -it --ipc=host $tLink to this sectionGPU'ları kullanma#
# Run with all GPUs
sudo docker run -it --ipc=host --runtime=nvidia --gpus all $t
# Run specifying which GPUs to use
sudo docker run -it --ipc=host --runtime=nvidia --gpus '"device=2,3"' $t-it bayrağı bir sahte-TTY atar ve stdin'i açık tutarak konteyner ile etkileşim kurmanı sağlar. --ipc=host bayrağı, süreçler arasında bellek paylaşımı için gerekli olan host'un IPC ad alanının paylaşılmasını sağlar. --gpus bayrağı ise konteynerin host'un GPU'larına erişmesine izin verir.
Link to this sectionDosya 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 --runtime=nvidia --gpus all -v /path/on/host:/path/in/container $t/path/on/host kısmını yerel makinendeki dizin yoluyla, /path/in/container kısmını ise Docker konteyneri içindeki istediğin yolla değiştir.
Link to this sectionEğitim Çıktılarını Kalıcı Hale Getirme#
Eğitim çıktıları varsayılan olarak konteyner içindeki /ultralytics/runs/<task>/<name>/ dizinine kaydedilir. Bir host dizini bağlamazsan, 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/runsBu komut tüm eğitim çıktılarını host makinendeki ./runs dizinine kaydeder.
Link to this sectionBir Docker Konteynerinde grafiksel kullanıcı arayüzü (GUI) uygulamalarını çalıştırma#
Docker öncelikle 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 ekranı yöneten iki ana grafik sunucusu vardır: X11 (X Window System olarak da bilinir) ve Wayland. Başlamadan önce, şu anda hangi grafik sunucusunu kullandığını belirlemek önemlidir. Bunu öğrenmek için şu 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.
Link to this sectionGUI ile bir Docker Konteyneri Çalıştırma#
GPU'ları kullan
GPU kullanıyorsan, komuta --gpus all bayrağını ekleyebilirsin.
Docker çalıştırma zamanı bayrağı
Eğer Docker kurulumun varsayılan olarak nvidia çalıştırma zamanını kullanmıyorsa, komuta --runtime=nvidia 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 $tBu komut DISPLAY ortam değişkenini host'un 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.
Link to this sectionGUI ile Docker Kullanımı#
Now you can display graphical applications inside your Docker container. For example, you can run the following CLI command to visualize the predictions from a YOLO26 model:
yolo predict model=yolo26n.pt show=TrueTest 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 görüntü sunucunun X11 sunucusuna erişimi test etmek için bu programları Ultralytics Docker konteynerine de yükleyebilirsin. Herhangi bir sorunla karşılaşırsan, -e QT_DEBUG_PLUGINS=1 ortam değişkenini ayarlamayı düşün. Bu ortam değişkenini ayarlamak, sorun giderme sürecine yardımcı olan hata ayıklama bilgilerinin çıktısını etkinleştirir.
Link to this sectionDocker GUI ile işin bittiğinde#
Her iki durumda da, işin bittiğinde Docker grubunun erişimini iptal etmeyi unutma.
xhost -local:dockerGörüntü sonuçlarını doğrudan Terminalde görmek ister misin?
Şu kılavuza bak: terminal kullanarak görüntü sonuçlarını görüntüleme
Artık Ultralytics'i Docker ile kullanmak için hazırsın ve yeteneklerinden yararlanabilirsin. Alternatif kurulum yöntemleri için Ultralytics hızlı başlangıç dokümantasyonuna göz at.
Link to this sectionSSS#
Link to this sectionUltralytics'i Docker ile nasıl kurarım?#
Ultralytics'i Docker ile kurmak için öncelikle sisteminde Docker'ın kurulu olduğundan emin ol. Eğer bir NVIDIA GPU'n varsa, GPU desteğini etkinleştirmek için NVIDIA Container Toolkit aracını yükle. Ardından, aşağıdaki komutu kullanarak en son Ultralytics Docker imajını Docker Hub üzerinden çek:
sudo docker pull ultralytics/ultralytics:latestDetaylı adımlar için Docker Hızlı Başlangıç Kılavuzumuza başvur.
Link to this sectionMakine öğrenimi projeleri için Ultralytics Docker imajlarını kullanmanın faydaları nelerdir?#
Ultralytics Docker imajlarını kullanmak, farklı makinelerde aynı yazılım ve bağımlılıkları kopyalayarak tutarlı bir ortam sağlar. Bu, özellikle ekipler arası iş birliği, modelleri çeşitli donanımlarda çalıştırma ve tekrarlanabilirliği sürdürme için oldukça yararlıdır. GPU tabanlı eğitim için Ultralytics, genel GPU kullanımı için Dockerfile ve NVIDIA Jetson cihazları için Dockerfile-jetson gibi optimize edilmiş Docker imajları sağlar. Daha fazla detay için Ultralytics Docker Hub sayfasını keşfet.
Link to this sectionUltralytics YOLO'yu GPU desteği olan bir Docker konteynerinde nasıl çalıştırabilirim?#
Öncelikle, NVIDIA Container Toolkit aracının yüklü ve yapılandırılmış olduğundan emin ol. Ardından, Ultralytics YOLO'yu GPU desteği ile çalıştırmak için şu komutu kullan:
sudo docker run -it --ipc=host --runtime=nvidia --gpus all ultralytics/ultralytics:latest # all GPUsBu komut, GPU erişimi olan bir Docker konteyneri kurar. Ek detaylar için Docker Hızlı Başlangıç Kılavuzuna bak.
Link to this sectionBir 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:latestWayland ç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:latestDaha fazla bilgi Bir Docker Konteynerinde grafiksel kullanıcı arayüzü (GUI) uygulamalarını çalıştırma bölümünde bulunabilir.
Link to this sectionUltralytics 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 --runtime=nvidia --gpus all -v /path/on/host:/path/in/container ultralytics/ultralytics:latest/path/on/host kısmını yerel makinendeki dizinle, /path/in/container kısmını ise konteyner içinde istediğin yolla değiştir. Bu kurulum, yerel dosyalarınla konteyner içinde çalışmana olanak tanır. Daha fazla bilgi için Dosya Erişilebilirliği Hakkında Not bölümüne bak.