Ultralytics için Docker Hızlı Başlangıç Kılavuzu
Bu kılavuz, Ultralytics projeleriniz için bir Docker ortamı kurmaya kapsamlı bir giriş sunmaktadır. Docker, uygulamaları konteynerlerde geliştirmek, göndermek ve çalıştırmak için bir platformdur. Özellikle yazılımın nereye dağıtıldığına bakılmaksızın her zaman aynı şekilde çalışmasını sağlamak için faydalıdır. Daha fazla ayrıntı için, Docker Hub'daki Ultralytics Docker deposunu ziyaret edin.
Ne Öğreneceksiniz
- NVIDIA desteği ile Docker kurulumu
- Ultralytics Docker imajlarını kurma
- CPU veya GPU desteğiyle bir Docker kapsayıcısında Ultralytics'i çalıştırma
- Ultralytics Algılama Sonuçlarını Göstermek için Docker ile Bir Ekran Sunucusu Kullanma
- Yerel dizinleri kapsayıcıya bağlama
İzle: Docker'a Başlangıç | Docker içinde Ultralytics Python Paketinin Kullanımı canlı demo 🎉
Ön koşullar
- Sisteminizde Docker'ın kurulu olduğundan emin olun. Değilse, Docker'ın web sitesinden indirip kurabilirsiniz.
- Sisteminizde bir NVIDIA GPU'su bulunduğundan ve NVIDIA sürücülerinin kurulu olduğundan emin olun.
NVIDIA Desteği ile Docker Kurulumu
İlk olarak, NVIDIA sürücülerinin düzgün bir şekilde kurulduğunu şu komutu çalıştırarak doğrulayın:
nvidia-smi
NVIDIA Docker Runtime Kurulumu
Şimdi, Docker kapsayıcılarında GPU desteğini etkinleştirmek için NVIDIA Docker çalışma zamanını kuralım:
# Add NVIDIA package repositories
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(lsb_release -cs)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
# Install NVIDIA Docker runtime
sudo apt-get update
sudo apt-get install -y nvidia-docker2
# Restart Docker service to apply changes
sudo systemctl restart docker
Docker ile NVIDIA Çalışma Zamanını Doğrulayın
Çalıştır docker info | grep -i runtime
sağlamak için nvidia
çalışma zamanları listesinde görünür:
docker info | grep -i runtime
Ultralytics Docker İmajlarını Kurulumu
Ultralytics, çeşitli platformlar ve kullanım durumları için optimize edilmiş çeşitli Docker görüntüleri sunar:
- Dockerfile: Eğitim için ideal olan GPU görüntüsü.
- Dockerfile-arm64: Raspberry Pi gibi cihazlar için uygun olan ARM64 mimarisi için.
- Dockerfile-cpu: Çıkarım ve GPU olmayan ortamlar için yalnızca CPU sürümü.
- Dockerfile-jetson-jetpack4: NVIDIA JetPack 4 çalıştıran NVIDIA Jetson cihazları için optimize edilmiştir.
- Dockerfile-jetson-jetpack5: NVIDIA JetPack 5 çalıştıran NVIDIA Jetson cihazları için optimize edilmiştir.
- Dockerfile-jetson-jetpack6: NVIDIA JetPack 6 çalıştıran NVIDIA Jetson cihazları için optimize edilmiştir.
- Dockerfile-jupyter: Tarayıcıda JupyterLab kullanarak etkileşimli geliştirme için.
- Dockerfile-python: Hafif uygulamalar için minimal python ortamı.
- Dockerfile-conda: Conda aracılığıyla yüklenen Miniconda3 ve Ultralytics paketini içerir.
En son görüntüyü çekmek için:
# Set image name as a variable
t=ultralytics/ultralytics:latest
# Pull the latest Ultralytics image from Docker Hub
sudo docker pull $t
Docker Kapsayıcısında Ultralytics'i Çalıştırma
İşte Ultralytics Docker konteynerini nasıl çalıştıracağınız:
Yalnızca CPU'yu Kullanma
# Run without GPU
sudo docker run -it --ipc=host $t
GPU'ları Kullanma
# Run with all GPUs
sudo docker run -it --ipc=host --gpus all $t
# Run specifying which GPUs to use
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t
-it
işareti, sözde bir TTY atar ve stdin'i açık tutarak konteynerle etkileşim kurmanızı sağlar. Şuradaki --ipc=host
işareti, işlemler arasında bellek paylaşımı için gerekli olan ana makinenin IPC ad alanının paylaşımını etkinleştirir. Şuradaki --gpus
işareti, konteynerin ana makinenin GPU'larına erişmesini sağlar.
Dosya Erişilebilirliği Hakkında Not
Konteyner içindeki yerel makinenizdeki dosyalarla çalışmak için Docker birimlerini kullanabilirsiniz:
# Mount a local directory into the container
sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container $t
Değiştir /path/on/host
yerel makinenizdeki dizin yoluyla ve /path/in/container
Docker kapsayıcısı içindeki istenen yolla.
Bir Docker Kapsayıcısında grafik kullanıcı arayüzü (GUI) uygulamalarını çalıştırın
Son Derece Deneysel - Kullanıcı Tüm Riski Üstlenir
Aşağıdaki talimatlar deneyseldir. Bir X11 soketini bir Docker kapsayıcısıyla paylaşmak potansiyel güvenlik riskleri oluşturur. Bu nedenle, bu çözümü yalnızca kontrollü bir ortamda test etmeniz önerilir. Daha fazla bilgi için, nasıl kullanılacağına ilişkin bu kaynaklara bakın xhost
(1)(2).
Docker öncelikle arka plan uygulamalarını ve CLI programlarını konteynerleştirmek için kullanılır, ancak grafik programlarını da çalıştırabilir. Linux dünyasında, iki ana grafik sunucusu grafik ekranını yönetir: X11 (X Window Sistemi olarak da bilinir) ve Wayland. Başlamadan önce, şu anda hangi grafik sunucusunu kullandığınızı belirlemek önemlidir. Öğrenmek için bu komutu çalıştırın:
env | grep -E -i 'x11|xorg|wayland'
Bir X11 veya Wayland ekran sunucusunun kurulumu ve yapılandırılması bu kılavuzun kapsamı dışındadır. Yukarıdaki komut hiçbir şey döndürmezse, devam etmeden önce sisteminiz için bunlardan birini çalışır hale getirerek başlamanız gerekir.
GUI ile Bir Docker Kapsayıcısı Çalıştırmak
Örnek
GPU'ları kullanın
If you're using [GPUs](#using-gpus), you can add the `--gpus all` flag to the command.
X11 kullanıyorsanız, Docker konteynerinin X11 soketine erişmesine izin vermek için aşağıdaki komutu çalıştırabilirsiniz:
xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v ~/.Xauthority:/root/.Xauthority \
-it --ipc=host $t
Bu komut şunu ayarlar: DISPLAY
ortam değişkenini ana makinenin ekranına ayarlar, X11 soketini bağlar ve şunu eşler: .Xauthority
dosyasını kapsayıcıya kopyalayın. xhost +local:docker
komutu, Docker konteynerinin X11 sunucusuna erişmesini sağlar.
Wayland için aşağıdaki komutu kullanın:
xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
-v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
--net=host -it --ipc=host $t
Bu komut şunu ayarlar: DISPLAY
ortam değişkenini ana makinenin ekranına ayarlar, Wayland soketini bağlar ve Docker konteynerinin Wayland sunucusuna erişmesine izin verir.
GUI ile Docker Kullanımı
Artık Docker kapsayıcınızın içinde grafik uygulamaları görüntüleyebilirsiniz. Örneğin, bir YOLO11 modelinden gelen tahminleri görselleştirmek için aşağıdaki CLI komutunu çalıştırabilirsiniz:
yolo predict model=yolo11n.pt show=True
Test
Docker grubunun X11 sunucusuna erişimi olduğunu doğrulamak için basit bir yol, bir GUI programı gibi bir kapsayıcı çalıştırmaktır. xclock
veya xeyes
. Alternatif olarak, GNU-Linux ekran sunucunuzun X11 sunucusuna erişimi test etmek için bu programları Ultralytics Docker konteynerine de yükleyebilirsiniz. Herhangi bir sorunla karşılaşırsanız, ortam değişkenini ayarlamayı düşünebilirsiniz: -e QT_DEBUG_PLUGINS=1
. Bu ortam değişkeninin ayarlanması, sorun giderme sürecine yardımcı olarak hata ayıklama bilgilerinin çıktısını etkinleştirir.
Docker GUI ile işiniz bittiğinde
Erişimi iptal et
Her iki durumda da, işiniz bittiğinde Docker grubundan erişimi iptal etmeyi unutmayın.
xhost -local:docker
Resim sonuçlarını doğrudan Terminalde görüntülemek ister misiniz?
Bir terminal kullanarak görüntü sonuçlarını görüntüleme hakkındaki aşağıdaki kılavuza bakın
Tebrikler! Artık Ultralytics'i Docker ile kullanmaya hazırsınız ve güçlü yeteneklerinden yararlanmaya başlayabilirsiniz. Alternatif kurulum yöntemleri için Ultralytics hızlı başlangıç belgelerini inceleyebilirsiniz.
SSS
Ultralytics'i Docker ile nasıl kurarım?
Ultralytics'i Docker ile kurmak için, öncelikle Docker'ın sisteminizde kurulu olduğundan emin olun. Bir NVIDIA GPU'nuz varsa, GPU desteğini etkinleştirmek için NVIDIA Docker çalışma zamanını kurun. Ardından, aşağıdaki komutu kullanarak Docker Hub'dan en son Ultralytics Docker görüntüsünü çekin:
sudo docker pull ultralytics/ultralytics:latest
Ayrıntılı adımlar için Docker Hızlı Başlangıç Kılavuzumuza bakın.
Makine öğrenimi projeleri için Ultralytics Docker imajlarını kullanmanın faydaları nelerdir?
Ultralytics Docker görüntülerini kullanmak, aynı yazılımı ve bağımlılıkları kopyalayarak farklı makinelerde tutarlı bir ortam sağlar. Bu özellikle ekipler arasında işbirliği yapmak, çeşitli donanımlarda modeller çalıştırma ve tekrarlanabilirliği koruma. GPU tabanlı eğitim için, Ultralytics gibi optimize edilmiş Docker görüntüleri sağlar Dockerfile
genel GPU kullanımı için ve Dockerfile-jetson
NVIDIA Jetson cihazları için. Keşfedin Ultralytics Docker Hub daha fazla ayrıntı için.
GPU desteğiyle bir Docker konteynerinde Ultralytics YOLO'yu nasıl çalıştırabilirim?
İlk olarak, NVIDIA Docker çalışma zamanının kurulu ve yapılandırılmış olduğundan emin olun. Ardından, Ultralytics YOLO'yu GPU desteğiyle çalıştırmak için aşağıdaki komutu kullanın:
sudo docker run -it --ipc=host --gpus all ultralytics/ultralytics:latest
Bu komut, GPU erişimi olan bir Docker konteyneri kurar. Ek ayrıntılar için Docker Hızlı Başlangıç Kılavuzu'na bakın.
Bir ekran sunucusu ile bir Docker konteynerinde YOLO tahmin sonuçlarını nasıl görselleştiririm?
Bir Docker konteynerinde bir GUI ile YOLO tahmin sonuçlarını görselleştirmek için, Docker'ın ekran sunucunuza erişmesine izin vermeniz 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ın:
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 Kapsayıcısında grafik kullanıcı arayüzü (GUI) uygulamalarını çalıştırma bölümünde bulabilirsiniz.
Yerel dizinleri Ultralytics Docker konteynerine bağlayabilir miyim?
Evet, yerel dizinleri Ultralytics Docker konteynerine şu şekilde bağlayabilirsiniz: -v
işareti:
sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container ultralytics/ultralytics:latest
Değiştir /path/on/host
yerel makinenizdeki dizinle ve /path/in/container
kapsayıcı içindeki istenen yolla. Bu kurulum, kapsayıcı içindeki yerel dosyalarınızla çalışmanıza olanak tanır. Daha fazla bilgi için şuraya bakın: Dosya Erişilebilirliği Hakkında Not bölüm.