İçeriğe geç

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

Ultralytics Docker Paket Görseli

Bu kılavuz, Ultralytics projeleriniz için bir Docker ortamı kurmaya yönelik kapsamlı bir giriş niteliğindedir. Docker, uygulamaları konteynerlerde geliştirmek, göndermek ve çalıştırmak için kullanılan bir platformdur. Yazılımın nerede konuşlandırıldığından bağımsız olarak her zaman aynı şekilde çalışmasını sağlamak için özellikle faydalıdır. Daha fazla ayrıntı için Docker Hub'daki Ultralytics Docker deposunu ziyaret edin.

Docker Görüntü Sürümü Docker Çeker

Neler Öğreneceksiniz

  • Docker'ı NVIDIA desteği ile kurma
  • Ultralytics Docker görüntülerini yükleme
  • Ultralytics 'u CPU veya GPU desteğiyle bir Docker konteynerinde çalıştırma
  • Ultralytics Tespit Sonuçlarını Göstermek için Docker ile Ekran Sunucusu Kullanma
  • Yerel dizinleri konteynere monte etme

Ön Koşullar

  • Docker'ın sisteminizde kurulu olduğundan emin olun. Değilse, Docker'ın web sitesinden indirip kurabilirsiniz.
  • Sisteminizde NVIDIA GPU ve NVIDIA sürücülerinin yüklü olduğundan emin olun.

Docker'ı NVIDIA Desteği ile Kurma

İlk olarak, NVIDIA sürücülerinin düzgün bir şekilde yüklendiğini doğrulayın:

nvidia-smi

NVIDIA Docker Runtime'ı Yükleme

Şimdi, Docker konteynerlerinde GPU desteğini etkinleştirmek için NVIDIA Docker çalışma zamanını yükleyelim:

# 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ğrulama

Koşmak 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 Görüntülerini Yükleme

Ultralytics çeşitli platformlar ve kullanım durumları için optimize edilmiş çeşitli Docker görüntüleri sunar:

  • Dockerfile: GPU görüntüsü, eğitim için ideal.
  • Dockerfile-arm64: ARM64 mimarisi için, Raspberry Pi gibi cihazlar için uygundur.
  • Dockerfile-cpu: CPU sadece çıkarım veGPU dışı ortamlar için sürüm.
  • Dockerfile-jetson: NVIDIA Jetson cihazları için optimize edilmiştir.
  • 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 Konteynerinde Ultralytics Çalıştırma

Ultralytics Docker konteynerinin nasıl çalıştırılacağı aşağıda açıklanmıştır:

Yalnızca CPU

# Run with all GPUs
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

Bu -it bayrağı bir pseudo-TTY atar ve stdin'i açık tutarak konteyner ile etkileşime girmenizi sağlar. Bu --ipc=host bayrağı, işlemler arasında bellek paylaşımı için gerekli olan ana bilgisayarın IPC ad alanının paylaşılmasını sağlar. Bu bayrak --gpus bayrağı konteynerin ana bilgisayarın GPU'larına erişmesini sağlar.

Docker Konteynerinde Ultralytics Çalıştırma

Ultralytics Docker konteynerinin nasıl çalıştırılacağı aşağıda açıklanmıştır:

Yalnızca CPU

# Run with all GPUs
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

Bu -it bayrağı bir pseudo-TTY atar ve stdin'i açık tutarak konteyner ile etkileşime girmenizi sağlar. Bu --ipc=host bayrağı, işlemler arasında bellek paylaşımı için gerekli olan ana bilgisayarın IPC ad alanının paylaşılmasını sağlar. Bu bayrak --gpus bayrağı konteynerin ana bilgisayarın GPU'larına erişmesini sağlar.

Dosya Erişilebilirliği Hakkında Not

Konteyner içinde 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ştirin /path/on/host ile yerel makinenizdeki dizin yolunu ve /path/in/container Docker konteynerinin içinde istenen yol ile.

Grafik kullanıcı arayüzü (GUI) uygulamalarını bir Docker Konteynerinde çalıştırma

Son Derece Deneysel - Kullanıcı Tüm Riski Üstlenir

Aşağıdaki talimatlar deneyseldir. Bir X11 soketini bir Docker konteyneri ile paylaşmak potansiyel güvenlik riskleri oluşturur. Bu nedenle, bu çözümün yalnızca kontrollü bir ortamda test edilmesi önerilir. Daha fazla bilgi için, nasıl kullanılacağına ilişkin şu 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ı da çalıştırabilir. Linux dünyasında, iki ana grafik sunucusu grafiksel görüntüyü idare eder: X11 (X Pencere Sistemi olarak da bilinir) ve Wayland. Başlamadan önce, şu anda hangi grafik sunucusunu kullandığınızı belirlemek çok önemlidir. Öğrenmek için bu komutu çalıştırın:

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

Bir X11 veya Wayland görüntü 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 ikisinden birini çalıştırarak başlamanız gerekir.

Docker Konteynerini GUI ile Çalıştırma

Ö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 aşağıdakileri ayarlar DISPLAY ortam değişkenini ana bilgisayarın ekranıyla eşleştirir, X11 soketini bağlar ve .Xauthority dosyasını konteynere yükleyin. Bu 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 aşağıdakileri ayarlar DISPLAY ortam değişkenini ana bilgisayarın ekranına bağlar, Wayland soketini bağlar ve Docker konteynerinin Wayland sunucusuna erişmesine izin verir.

Docker'ı bir GUI ile kullanma

Artık Docker konteynerinizin içinde grafik uygulamaları görüntüleyebilirsiniz. Örneğin, bir YOLOv8 modelinden elde edilen tahminleri görselleştirmek için aşağıdaki CLI komutunu çalıştırabilirsiniz:

yolo predict model=yolov8n.pt show=True
Test

Docker grubunun X11 sunucusuna erişimi olduğunu doğrulamanın basit bir yolu, aşağıdaki gibi bir GUI programı ile bir konteyner çalıştırmaktır xclock veya xeyes. Alternatif olarak, GNU-Linux görüntü 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üşünün -e QT_DEBUG_PLUGINS=1. Bu ortam değişkeninin ayarlanması, hata ayıklama bilgilerinin çıktısını etkinleştirerek sorun giderme sürecine yardımcı olur.

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
Görüntü sonuçlarını doğrudan Terminal'de görüntülemek ister misiniz?

Bir terminal kullanarak görüntü sonuçlarını görüntülemek için aşağıdaki kılavuza bakın


Tebrikler! Artık Docker ile Ultralytics 'u kullanmaya ve güçlü özelliklerinden yararlanmaya hazırsınız. Alternatif kurulum yöntemleri için Ultralytics hızlı başlangıç belgelerini incelemekten çekinmeyin.

SSS

Docker ile Ultralytics adresini nasıl kurabilirim?

Docker ile Ultralytics 'u kurmak için öncelikle Docker'ın sisteminizde kurulu olduğundan emin olun. NVIDIA GPU adresiniz varsa, GPU desteğini etkinleştirmek için NVIDIA Docker çalışma zamanını yükleyin. 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 görüntülerini kullanmanın faydaları nelerdir?

Ultralytics Docker görüntülerini kullanmak, aynı yazılımı ve bağımlılıkları çoğaltarak farklı makinelerde tutarlı bir ortam sağlar. Bu özellikle ekipler arasında işbirliği yapmak, modelleri çeşitli donanımlarda çalıştırmak ve tekrarlanabilirliği korumak için kullanışlıdır. GPU tabanlı eğitim için Ultralytics aşağıdaki 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.

Ultralytics YOLO adresini GPU destekli bir Docker konteynerinde 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 adresini 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. Daha fazla ayrıntı için Docker Hızlı Başlangıç Kılavuzu'na bakın.

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

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

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 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 bilgi Docker Konteynerinde grafik kullanıcı arayüzü (GUI) uygulamaları çalıştırma bölümünde bulunabilir.

Yerel dizinleri Ultralytics Docker konteynerine bağlayabilir miyim?

Evet, yerel dizinleri Ultralytics Docker konteynerine bağlayabilirsiniz. -v bayrak:

sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container ultralytics/ultralytics:latest

Değiştirin /path/on/host ile yerel makinenizdeki dizini ve /path/in/container konteyner içinde istenen yol ile. Bu kurulum, konteyner içindeki yerel dosyalarınızla çalışmanıza olanak tanır. Daha fazla bilgi için ilgili bölüme bakın yerel dizinlerin montajı.



Oluşturma 2023-11-12, Güncelleme 2024-07-05
Yazarlar: glenn-jocher (7), Burhan-Q (1), jpedrofonseca_94@hotmail.com (1)

Yorumlar