دليل البدء السريع لـ Ultralytics Docker
يعمل هذا الدليل كمقدمة شاملة لإعداد بيئة Docker لمشاريع Ultralytics الخاصة بك. Docker عبارة عن منصة لتطوير وشحن وتشغيل التطبيقات في حاويات. إنه مفيد بشكل خاص لضمان تشغيل البرنامج دائمًا بنفس الطريقة، بغض النظر عن مكان نشره. لمزيد من التفاصيل، قم بزيارة مستودع Ultralytics Docker على Docker Hub.
ما ستتعلمه
- إعداد Docker مع دعم NVIDIA
- تثبيت صور Ultralytics Docker
- تشغيل Ultralytics في حاوية Docker مع دعم CPU أو GPU
- استخدام خادم عرض مع Docker لعرض نتائج الكشف الخاصة بـ Ultralytics
- تحميل الدلائل المحلية في الحاوية
شاهد: كيفية البدء في استخدام Docker | استخدام حزمة Ultralytics python داخل عرض Docker التوضيحي المباشر 🎉
المتطلبات الأساسية
- تأكد من تثبيت Docker على نظامك. إذا لم يكن كذلك، يمكنك تنزيله وتثبيته من موقع Docker الإلكتروني.
- تأكد من أن نظامك يحتوي على NVIDIA GPU وأن برامج تشغيل NVIDIA مثبتة.
إعداد Docker مع دعم NVIDIA
أولاً، تحقق من تثبيت برامج تشغيل NVIDIA بشكل صحيح عن طريق تشغيل:
nvidia-smi
تثبيت NVIDIA Docker Runtime
الآن، لنقم بتثبيت NVIDIA Docker runtime لتمكين دعم 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 Runtime مع Docker
تشغيل docker info | grep -i runtime
للتأكد من أن nvidia
يظهر في قائمة أوقات التشغيل:
docker info | grep -i runtime
تثبيت صور Ultralytics Docker
تقدم Ultralytics العديد من صور Docker المحسّنة لمختلف الأنظمة الأساسية وحالات الاستخدام:
- Dockerfile: صورة GPU، مثالية للتدريب.
- Dockerfile-arm64: لبنية ARM64، مناسبة لأجهزة مثل Raspberry Pi.
- Dockerfile-cpu: نسخة لوحدة المعالجة المركزية (CPU) فقط للاستدلال والبيئات التي لا تحتوي على وحدة معالجة الرسوميات (GPU).
- Dockerfile-jetson-jetpack4: مُحسَّن لأجهزة NVIDIA Jetson التي تعمل بنظام NVIDIA JetPack 4.
- Dockerfile-jetson-jetpack5: مُحسَّن لأجهزة NVIDIA Jetson التي تعمل بنظام NVIDIA JetPack 5.
- Dockerfile-jetson-jetpack6: مُحسَّن لأجهزة NVIDIA Jetson التي تعمل بنظام NVIDIA JetPack 6.
- Dockerfile-jupyter: للتطوير التفاعلي باستخدام JupyterLab في المتصفح.
- Dockerfile-python: بيئة python بسيطة للتطبيقات خفيفة الوزن.
- Dockerfile-conda: تتضمن Miniconda3 وحزمة Ultralytics المثبتة عبر Conda.
لسحب أحدث صورة:
# Set image name as a variable
t=ultralytics/ultralytics:latest
# Pull the latest Ultralytics image from Docker Hub
sudo docker pull $t
تشغيل Ultralytics في حاوية Docker
إليك كيفية تنفيذ حاوية Ultralytics Docker:
استخدام وحدة المعالجة المركزية (CPU) فقط
# Run without GPU
sudo docker run -it --ipc=host $t
استخدام وحدات معالجة الرسوميات (GPUs)
# 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
تسمح العلامة للحاوية بالوصول إلى وحدات معالجة الرسوميات (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 في المقام الأول لتعبئة تطبيقات الخلفية وبرامج CLI، ولكن يمكنه أيضًا تشغيل البرامج الرسومية. في عالم Linux، يتعامل خادمان رسوميان رئيسيان مع العرض الرسومي: X11 (المعروف أيضًا باسم X Window System) و Wayland. قبل البدء، من الضروري تحديد خادم الرسوميات الذي تستخدمه حاليًا. قم بتشغيل هذا الأمر لمعرفة ذلك:
env | grep -E -i 'x11|xorg|wayland'
يقع إعداد وتكوين خادم عرض X11 أو Wayland خارج نطاق هذا الدليل. إذا لم يُرجع الأمر أعلاه أي شيء، فستحتاج إلى البدء بتشغيل أي منهما لنظامك قبل المتابعة.
تشغيل حاوية Docker مع واجهة مستخدم رسومية
مثال
استخدام وحدات معالجة الرسوميات (GPUs)
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 التالي لتصور التنبؤات من نموذج YOLO11:
yolo predict model=yolo11n.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.
الأسئلة الشائعة
كيف يمكنني إعداد Ultralytics باستخدام Docker؟
لإعداد Ultralytics مع Docker، تأكد أولاً من تثبيت Docker على نظامك. إذا كان لديك NVIDIA GPU، فقم بتثبيت NVIDIA Docker runtime لتمكين دعم GPU. بعد ذلك، اسحب أحدث صورة Ultralytics Docker من Docker Hub باستخدام الأمر التالي:
sudo docker pull ultralytics/ultralytics:latest
للاطلاع على الخطوات التفصيلية، راجع دليل البدء السريع لـ Docker.
ما هي فوائد استخدام صور Ultralytics Docker لمشاريع تعلم الآلة؟
يضمن استخدام صور Ultralytics Docker بيئة متسقة عبر أجهزة مختلفة، وتكرار نفس البرنامج والتبعيات. هذا مفيد بشكل خاص لـ التعاون بين الفرق، وتشغيل النماذج على أجهزة متنوعة، والحفاظ على إمكانية التكاثر. للتدريب القائم على GPU، توفر Ultralytics صور Docker محسّنة مثل Dockerfile
للاستخدام العام لوحدة معالجة الرسومات GPU و Dockerfile-jetson
لأجهزة NVIDIA Jetson. استكشف Ultralytics Docker Hub لمزيد من التفاصيل.
كيف يمكنني تشغيل Ultralytics YOLO في حاوية Docker مع دعم GPU؟
أولاً، تأكد من تثبيت وتكوين NVIDIA Docker runtime. بعد ذلك، استخدم الأمر التالي لتشغيل Ultralytics YOLO مع دعم GPU:
sudo docker run -it --ipc=host --gpus all ultralytics/ultralytics:latest
يقوم هذا الأمر بإعداد حاوية Docker مع الوصول إلى GPU. لمزيد من التفاصيل، راجع دليل البدء السريع لـ Docker.
كيف يمكنني تصور نتائج تنبؤات YOLO في حاوية Docker مع خادم عرض؟
لتصور نتائج التنبؤ YOLO بواجهة مستخدم رسومية في حاوية Docker، تحتاج إلى السماح لـ Docker بالوصول إلى خادم العرض الخاص بك. بالنسبة للأنظمة التي تعمل بنظام X11، يكون الأمر:
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، استخدم:
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
يمكن العثور على مزيد من المعلومات في قسم تشغيل تطبيقات واجهة المستخدم الرسومية (GUI) في حاوية Docker.
هل يمكنني تحميل الدلائل المحلية في حاوية Ultralytics Docker؟
نعم، يمكنك تحميل الدلائل المحلية إلى حاوية Ultralytics Docker باستخدام -v
الراية (flag):
sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container ultralytics/ultralytics:latest
استبدل /path/on/host
مع الدليل الموجود على جهازك المحلي و /path/in/container
مع المسار المطلوب داخل الحاوية. يتيح لك هذا الإعداد العمل مع ملفاتك المحلية داخل الحاوية. لمزيد من المعلومات، راجع ملاحظة حول إمكانية الوصول إلى الملفات القسم.