انتقل إلى المحتوى

دليل التشغيل السريع لعامل الإرساء ل Ultralytics

Ultralytics حزمة عامل ميناء البصرية

يعمل هذا الدليل كمقدمة شاملة لإعداد بيئة Docker لك Ultralytics المشاريع. Docker عبارة عن نظام أساسي لتطوير التطبيقات وشحنها وتشغيلها في الحاويات. إنه مفيد بشكل خاص لضمان تشغيل البرنامج دائما بنفس الطريقة ، بغض النظر عن مكان نشره. لمزيد من التفاصيل، يرجى زيارة Ultralytics مستودع Docker على Docker Hub.

إصدار صورة Docker عامل ميناء يسحب

ما سوف تتعلمه

  • إعداد Docker مع دعم NVIDIA
  • تثبيت Ultralytics صور عامل ميناء
  • تشغيل Ultralytics في حاوية Docker مع دعم وحدة المعالجة المركزية أو وحدة معالجة الرسومات
  • استخدام خادم عرض مع Docker لإظهار نتائج الكشف Ultralytics
  • تركيب الدلائل المحلية في الحاوية

المتطلبات المسبقه

  • تأكد من تثبيت Docker على نظامك. إذا لم يكن كذلك ، يمكنك تنزيله وتثبيته من موقع Docker على الويب.
  • تأكد من أن نظامك يحتوي على وحدة معالجة رسومات NVIDIA وتثبيت برامج تشغيل NVIDIA.

إعداد Docker مع دعم NVIDIA

أولا، تحقق من تثبيت برامج تشغيل NVIDIA بشكل صحيح عن طريق تشغيل:

nvidia-smi

تثبيت وقت تشغيل NVIDIA Docker

الآن ، دعنا نثبت وقت تشغيل NVIDIA Docker لتمكين دعم GPU في حاويات Docker:

# 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

تحقق من وقت تشغيل NVIDIA باستخدام Docker

ركض docker info | grep -i runtime لضمان أن nvidia في قائمة أوقات التشغيل:

docker info | grep -i runtime

تثبيت Ultralytics صور عامل ميناء

Ultralytics يقدم العديد من صور Docker المحسنة لمختلف الأنظمة الأساسية وحالات الاستخدام:

  • ملف الدوكر: صورة GPU ، مثالية للتدريب.
  • Dockerfile-arm64: لهندسة ARM64 ، مناسبة لأجهزة مثل Raspberry Pi.
  • Dockerfile-وحدة المعالجة المركزية: إصدار وحدة المعالجة المركزية فقط للاستدلال والبيئات غير GPU.
  • Dockerfile-jetson: محسن لأجهزة NVIDIA Jetson.
  • ملف داكر-python الحد الأدنى:Python بيئة للتطبيقات خفيفة الوزن.
  • Dockerfile-conda: يتضمن مينيكوندا3 و Ultralytics حزمة مثبتة عبر كوندا.

لسحب أحدث صورة:

# Set image name as a variable
t=ultralytics/ultralytics:latest

# Pull the latest Ultralytics image from Docker Hub
sudo docker pull $t

تشغيل Ultralytics في حاوية عامل ميناء

إليك كيفية تنفيذ ملف Ultralytics حاوية عامل ميناء:

استخدام وحدة المعالجة المركزية فقط

# Run with all GPUs
sudo docker run -it --ipc=host $t

استخدام وحدات معالجة الرسومات

# 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 يقوم العلم بتعيين TTY زائف ويبقي stdin مفتوحا ، مما يسمح لك بالتفاعل مع الحاوية. ال --ipc=host تتيح العلامة مشاركة مساحة اسم IPC الخاصة بالمضيف ، وهي ضرورية لمشاركة الذاكرة بين العمليات. ال --gpus تسمح العلامة للحاوية بالوصول إلى وحدات معالجة الرسومات الخاصة بالمضيف.

تشغيل Ultralytics في حاوية عامل ميناء

إليك كيفية تنفيذ ملف Ultralytics حاوية عامل ميناء:

استخدام وحدة المعالجة المركزية فقط

# Run with all GPUs
sudo docker run -it --ipc=host $t

استخدام وحدات معالجة الرسومات

# 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 يقوم العلم بتعيين TTY زائف ويبقي stdin مفتوحا ، مما يسمح لك بالتفاعل مع الحاوية. ال --ipc=host تتيح العلامة مشاركة مساحة اسم IPC الخاصة بالمضيف ، وهي ضرورية لمشاركة الذاكرة بين العمليات. ال --gpus تسمح العلامة للحاوية بالوصول إلى وحدات معالجة الرسومات الخاصة بالمضيف.

ملاحظة حول إمكانية الوصول إلى الملفات

للعمل مع الملفات الموجودة على جهازك المحلي داخل الحاوية، يمكنك استخدام وحدات تخزين Docker:

# Mount a local directory into the container
sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container $t

استبدل /path/on/host مع مسار الدليل على جهازك المحلي و /path/in/container مع المسار المطلوب داخل حاوية Docker.

قم بتشغيل تطبيقات واجهة المستخدم الرسومية (GUI) في حاوية Docker

تجريبي للغاية - المستخدم يتحمل جميع المخاطر

التعليمات التالية تجريبية. تشكل مشاركة مقبس X11 مع حاوية Docker مخاطر أمنية محتملة. لذلك، يوصى باختبار هذا الحل فقط في بيئة خاضعة للرقابة. لمزيد من المعلومات، ارجع إلى هذه المصادر حول كيفية استخدام 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'

إعداد وتهيئة خادم عرض X11 أو خادم عرض Wayland خارج نطاق هذا الدليل. إذا لم يُرجع الأمر أعلاه أي شيء، فستحتاج إلى البدء بإعداد أي منهما لنظامك قبل المتابعة.

تشغيل حاوية Docker باستخدام واجهة المستخدم الرسومية

مثل

استخدام وحدات معالجة الرسومات
If you're using [GPUs](#using-gpus), you can add the `--gpus all` flag to the command.

إذا كنت تستخدم X11، يمكنك تشغيل الأمر التالي للسماح لحاوية Docker بالوصول إلى مقبس X11:

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v ~/.Xauthority:/root/.Xauthority \
-it --ipc=host $t

يقوم هذا الأمر بتعيين DISPLAY متغير البيئة إلى شاشة عرض المضيف، ويقوم بتحميل مقبس X11، ويقوم بتعيين .Xauthority إلى الحاوية. إن xhost +local:docker يسمح لحاوية Docker بالوصول إلى خادم X11.

بالنسبة إلى Wayland، استخدم الأمر التالي:

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
-v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
--net=host -it --ipc=host $t

يقوم هذا الأمر بتعيين DISPLAY متغير البيئة إلى شاشة عرض المضيف، ويقوم بتحميل مقبس Wayland، ويسمح لحاوية Docker بالوصول إلى خادم Wayland.

استخدام Docker مع واجهة المستخدم الرسومية

يمكنك الآن عرض تطبيقات رسومية داخل حاوية Docker الخاصة بك. على سبيل المثال، يمكنك تشغيل الأمر التالي CLI لتصور التنبؤات من نموذجYOLOv8 :

yolo predict model=yolov8n.pt show=True
الاختبار

هناك طريقة بسيطة للتحقق من أن مجموعة Docker لديها حق الوصول إلى خادم X11 وهي تشغيل حاوية باستخدام برنامج واجهة المستخدم الرسومية مثل xclock أو xeyes. بدلاً من ذلك، يمكنك أيضًا تثبيت هذه البرامج في حاوية Ultralytics Docker لاختبار الوصول إلى خادم X11 لخادم العرض GNU-Linux الخاص بك. إذا واجهتك أي مشاكل، ففكر في ضبط متغير البيئة -e QT_DEBUG_PLUGINS=1. يتيح تعيين متغير البيئة هذا إخراج معلومات التصحيح، مما يساعد في عملية استكشاف الأخطاء وإصلاحها.

عند الانتهاء من واجهة Docker GUI

إبطال الوصول

في كلتا الحالتين، لا تنسَ إلغاء الوصول من مجموعة Docker عند الانتهاء.

xhost -local:docker
هل تريد عرض نتائج الصور مباشرةً في المنصة؟

ارجع إلى الدليل التالي حول عرض نتائج الصورة باستخدام محطة طرفية


مبروك! أنت الآن جاهز للاستخدام Ultralytics مع Docker وعلى استعداد للاستفادة من قدراته القوية. للحصول على طرق التثبيت البديلة ، لا تتردد في استكشاف Ultralytics وثائق التشغيل السريع.



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

التعليقات