─░├ž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 adresini CPU veya GPU destekli 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 bir NVIDIA GPU oldu─čundan ve NVIDIA s├╝r├╝c├╝lerinin y├╝kl├╝ oldu─čundan emin olun.

Docker'─▒ NVIDIA Deste─či ile Kurma

├ľncelikle, ├žal─▒┼čt─▒rarak NVIDIA s├╝r├╝c├╝lerinin d├╝zg├╝n ┼čekilde y├╝klendi─čini do─črulay─▒n:

nvidia-smi

NVIDIA Docker Runtime'─▒ Y├╝kleme

┼×imdi, Docker kapsay─▒c─▒lar─▒nda 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: ├ç─▒kar─▒m ve GPU olmayan ortamlar i├žin yaln─▒zca CPU 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 kullan─▒m─▒

# 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 kullan─▒m─▒

# 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 is primarily used to containerize background applications and CLI programs, but it can also run graphical programs. In the Linux world, two main graphic servers handle graphical display: X11 (also known as the X Window System) and Wayland. Before starting, it's essential to determine which graphics server you are currently using. Run this command to find out:

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.



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (6), Burhan-Q (1), jpedrofonseca_94@hotmail.com (1)

Yorumlar