Docker için Hızlı Başlangıç Kılavuzu Ultralytics
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.
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 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:
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
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
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:
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
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 YOLO11 model:
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.
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:
Ayrıntılı adımlar için Docker Hızlı Başlangıç Kılavuzumuza bakın.
What are the benefits of using Ultralytics Docker images for machine learning projects?
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:
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ı.