Ultralytics 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. Yazılımın nereye dağıtılırsa dağıtılsın her zaman aynı şekilde çalışmasını sağlamak için özellikle faydalıdır. Daha fazla detay için Docker Hub üzerindeki Ultralytics Docker deposunu ziyaret et.
Neler Öğreneceksin
- NVIDIA desteği ile Docker kurulumu
- Ultralytics Docker imajlarının yüklenmesi
- Ultralytics'i CPU veya GPU desteğiyle 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
- Docker'ın sisteminde yüklü olduğundan emin ol. 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.
NVIDIA Desteği ile Docker kurulumu
Öncelikle, şu komutu çalıştırarak NVIDIA sürücülerinin düzgün yüklendiğini doğrula:
nvidia-smiNVIDIA Container Toolkit yükleme
Şimdi, Docker konteynerlerinde GPU desteğini etkinleştirmek için NVIDIA Container Toolkit 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 yükle:
sudo apt-get updatenvidia-container-toolkit'in 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ü yükle
İsteğe bağlı olarak, NVIDIA_CONTAINER_TOOLKIT_VERSION ortam değişkenini ayarlayarak nvidia-container-toolkit'in belirli bir sürümünü yükleyebilirsin:
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 dockerNVIDIA Runtime'ı Docker ile doğrulama
Run docker info | grep -i runtime to ensure that nvidia appears in the list of runtimes:
docker info | grep -i runtimeUltralytics Docker İmajlarının Yüklenmesi
Ultralytics, çeşitli platformlar ve kullanım durumları için optimize edilmiş birkaç Docker imajı sunar:
- Dockerfile: GPU imajı, eğitim için idealdir.
- Dockerfile-arm64: ARM64 mimarisi için, Raspberry Pi gibi cihazlara uygundur.
- Dockerfile-cpu: Çıkarım (inference) ve GPU olmayan ortamlar için sadece CPU içeren 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 interaktif 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 paketi içerir.
- Dockerfile-export: Model dönüştürme ve kıyaslama 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 $tUltralytics'i Docker Konteynerinde Çalıştırma
İşte Ultralytics Docker konteynerini çalıştırmanın yolu:
Sadece CPU kullanma
# Run without GPU
sudo docker run -it --ipc=host $tGPU 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 pseudo-TTY atar ve stdin'i açık tutarak konteyner ile etkileşime girmeni sağlar. --ipc=host bayrağı, süreçler arasında bellek paylaşımı için gerekli olan ana bilgisayarın IPC ad alanının paylaşılmasını sağlar. --gpus bayrağı, konteynerin ana bilgisayarın GPU'larına erişmesine izin verir.
Dosya Erişilebilirliği Hakkında Not
Konteyner içinde yerel makinenizdeki 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 makinenizdeki dizin yoluyla ve /path/in/container kısmını ise Docker konteyneri içindeki hedef yolla 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>/ dizinine kaydedilir. Bir ana makine dizini bağlamadan, 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, tüm eğitim çıktılarını ana makinenizdeki ./runs klasörüne kaydeder.
Bir Docker Konteynerinde grafiksel kullanıcı arayüzü (GUI) uygulamaları ç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, hangi grafik sunucusunu kullandığını belirlemek önemlidir. Öğrenmek için bu komutu çalıştır:
env | grep -E -i 'x11|xorg|wayland'Bir X11 veya Wayland görüntü sunucusunun kurulumu ve yapılandırması bu kılavuzun kapsamı dışındadır. Yukarıdaki komut hiçbir şey döndürmezse, devam etmeden önce sisteminizde bunlardan birini çalışır hale getirmeniz gerekecektir.
GUI ile bir Docker Konteyneri Çalıştırma
GPU Kullan
GPU kullanıyorsan, komuta --gpus all bayrağını ekleyebilirsin.
Docker runtime bayrağı
Docker kurulumun varsayılan olarak nvidia çalışma zamanını kullanmıyorsa, komuta --runtime=nvidia bayrağını ekleyebilirsin.
X11 kullanıyorsan, Docker konteynerinin X11 soketine erişmesine izin vermek için aşağıdaki 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 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 kullanma
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 ekran sunucunuzun 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, hata ayıklama bilgilerinin çıktısını etkinleştirerek sorun giderme sürecine yardımcı olur.
Docker GUI ile işiniz bittiğinde
Her iki durumda da, işin bittiğinde Docker grubundan erişimi iptal etmeyi unutma.
xhost -local:dockerGörüntü sonuçlarını doğrudan Terminal'de görmek ister misin?
Görüntü sonuçlarını terminal kullanarak görüntüleme hakkındaki şu kılavuza bak: görüntü sonuçlarını terminal kullanarak görüntüleme
Artık Ultralytics'i Docker ile kullanmak için hazırsın ve yeteneklerinden yararlanabilirsin. Alternatif yükleme 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 Docker'ın sisteminde yüklü olduğundan emin ol. Eğer bir NVIDIA GPU'n varsa, GPU desteğini etkinleştirmek için NVIDIA Container Toolkit yükle. Ardından, aşağıdaki komutu kullanarak en son Ultralytics Docker imajını Docker Hub'dan çek:
sudo docker pull ultralytics/ultralytics:latestDetaylı adımlar için Docker Hızlı Başlangıç Kılavuzumuza başvur.
Makine öğrenimi projeleri için Ultralytics Docker imajlarını kullanmanın avantajları nelerdir?
Ultralytics Docker imajlarını kullanmak, farklı makinelerde tutarlı bir ortam sağlayarak aynı yazılımı ve bağımlılıkları kopyalar. Bu, özellikle ekipler arasında iş birliği yapmak, modelleri çeşitli donanımlarda çalıştırmak ve tekrarlanabilirliği sürdürmek için 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.
Ultralytics YOLO'yu GPU desteğiyle Docker konteynerinde nasıl çalıştırabilirim?
Öncelikle, NVIDIA Container Toolkit'in yüklü ve yapılandırılmış olduğundan emin ol. Ardından, Ultralytics YOLO'yu GPU desteğiyle ç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şimli bir Docker konteyneri kurar. Ek detaylar için Docker Hızlı Başlangıç Kılavuzu'na bak.
Bir Docker konteynerinde bir 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ı çalıştırma bölümünde bulunabilir.
Yerel dizinleri Ultralytics Docker konteynerine 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 makinenizdeki dizinle ve /path/in/container kısmını konteyner içindeki hedef 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 başvur.