सामग्री पर जाएं

डॉकर क्विकस्टार्ट गाइड के लिए Ultralytics

Ultralytics डॉकर पैकेज विजुअल

यह मार्गदर्शिका आपके लिए डॉकर वातावरण स्थापित करने के लिए एक व्यापक परिचय के रूप में कार्य करती है Ultralytics परियोजनाओं। डॉकर कंटेनरों में एप्लिकेशन विकसित करने, शिपिंग करने और चलाने के लिए एक मंच है। यह सुनिश्चित करने के लिए विशेष रूप से फायदेमंद है कि सॉफ़्टवेयर हमेशा एक जैसा चलेगा, भले ही वह कहीं भी तैनात हो। अधिक जानकारी के लिए, पर जाएँ Ultralytics Docker रिपॉजिटरी on Docker Hub.

डॉकर छवि संस्करण डॉकर पुल

आप क्या सीखेंगे

  • NVIDIA समर्थन के साथ डॉकर की स्थापना
  • स्थापित Ultralytics डॉकर छवियां
  • भागना Ultralytics CPU या GPU समर्थन वाले Docker कंटेनर में
  • दिखाने के लिए डॉकर के साथ डिस्प्ले सर्वर का उपयोग करना Ultralytics पता लगाने के परिणाम
  • कंटेनर में स्थानीय निर्देशिकाओं को माउंट करना

आवश्यकताएँ

  • सुनिश्चित करें Docker आपके सिस्टम पर स्थापित है। यदि नहीं, तो आप इसे डॉकर की वेबसाइट से डाउनलोड और इंस्टॉल कर सकते हैं।
  • सुनिश्चित करें कि आपके सिस्टम में NVIDIA GPU है और NVIDIA ड्राइवर स्थापित हैं।

NVIDIA समर्थन के साथ डॉकर सेट करना

सबसे पहले, सत्यापित करें कि NVIDIA ड्राइवर चलाकर ठीक से स्थापित हैं:

nvidia-smi

NVIDIA डॉकर रनटाइम स्थापित करना

अब, Docker कंटेनरों में GPU समर्थन को सक्षम करने के लिए NVIDIA 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 info | grep -i runtime यह सुनिश्चित करने के लिए कि nvidia रनटाइम की सूची में दिखाई देता है:

docker info | grep -i runtime

स्थापित Ultralytics डॉकर छवियाँ

Ultralytics विभिन्न प्लेटफार्मों और उपयोग-मामलों के लिए अनुकूलित कई डॉकर छवियां प्रदान करता है:

  • डॉकरफाइल: GPU छवि, प्रशिक्षण के लिए आदर्श।
  • डॉकरफाइल-आर्म64: ARM64 आर्किटेक्चर के लिए, रास्पबेरी पाई जैसे उपकरणों के लिए उपयुक्त।
  • Dockerfile-cpu: अनुमान और गैर-GPU वातावरण के लिए CPU-केवल संस्करण।
  • Dockerfile-jetson: NVIDIA Jetson उपकरणों के लिए अनुकूलित।
  • डॉकरफाइल-python: न्यूनतम Python हल्के अनुप्रयोगों के लिए पर्यावरण।
  • Dockerfile-conda: Miniconda3 और शामिल हैं Ultralytics पैकेज कोंडा के माध्यम से स्थापित किया गया।

नवीनतम छवि खींचने के लिए:

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

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

भागना Ultralytics in डॉकर कंटेनर

यहां बताया गया है कि कैसे निष्पादित करें Ultralytics डॉकर कंटेनर:

केवल सीपीयू का उपयोग करना

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

GPU का उपयोग करना

# 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 फ्लैग होस्ट के आईपीसी नेमस्पेस को साझा करने में सक्षम बनाता है, जो प्रक्रियाओं के बीच मेमोरी साझा करने के लिए आवश्यक है। वही --gpus ध्वज कंटेनर को होस्ट के जीपीयू तक पहुंचने की अनुमति देता है।

भागना Ultralytics in डॉकर कंटेनर

यहां बताया गया है कि कैसे निष्पादित करें Ultralytics डॉकर कंटेनर:

केवल सीपीयू का उपयोग करना

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

GPU का उपयोग करना

# 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 फ्लैग होस्ट के आईपीसी नेमस्पेस को साझा करने में सक्षम बनाता है, जो प्रक्रियाओं के बीच मेमोरी साझा करने के लिए आवश्यक है। वही --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 डॉकर कंटेनर के अंदर वांछित पथ के साथ।

ग्राफ़िकल यूज़र इंटरफ़ेस (GUI) एप्लिकेशन को डॉकर कंटेनर में चलाएँ

अत्यधिक प्रयोगात्मक - उपयोगकर्ता सभी जोखिम मानता है

निम्नलिखित निर्देश प्रयोगात्मक हैं। X11 सॉकेट को डॉकर कंटेनर के साथ साझा करना संभावित सुरक्षा जोखिम पैदा करता है। इसलिए, इस समाधान का परीक्षण केवल नियंत्रित वातावरण में करने की अनुशंसा की जाती है। अधिक जानकारी के लिए, उपयोग करने के तरीके के बारे में इन संसाधनों का संदर्भ लें 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 डिस्प्ले सर्वर का सेटअप और कॉन्फ़िगरेशन इस गाइड के दायरे से बाहर है। यदि उपरोक्त आदेश कुछ भी नहीं देता है, तो आपको जारी रखने से पहले अपने सिस्टम के लिए काम करके शुरू करना होगा।

GUI के साथ Docker कंटेनर चलाना

उदाहरण

GPU का उपयोग करें
If you're using [GPUs](#using-gpus), you can add the `--gpus all` flag to the command.

यदि आप X11 का उपयोग कर रहे हैं, तो आप डॉकर कंटेनर को 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 कमांड डॉकर कंटेनर को X11 सर्वर तक पहुंचने की अनुमति देता है।

वायलैंड के लिए, निम्न कमांड का उपयोग करें:

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

यह कमांड सेट करता है DISPLAY मेजबान के प्रदर्शन के लिए पर्यावरण चर, वेलैंड सॉकेट को माउंट करता है, और डॉकर कंटेनर को वेलैंड सर्वर तक पहुंचने की अनुमति देता है।

GUI के साथ डॉकर का उपयोग करना

अब आप अपने अंदर ग्राफिकल एप्लिकेशन प्रदर्शित कर सकते हैं Docker कंटेनर। उदाहरण के लिए, आप निम्न चला सकते हैं CLI से भविष्यवाणियों की कल्पना करने के लिए आदेशYOLOv8 नमूना:

yolo predict model=yolov8n.pt show=True
परीक्षण

यह सत्यापित करने का एक आसान तरीका है कि डॉकर समूह के पास X11 सर्वर तक पहुंच है, एक कंटेनर को जीयूआई प्रोग्राम के साथ चलाना है जैसे xclock नहीं तो xeyes. वैकल्पिक रूप से, आप इन प्रोग्रामों को Ultralytics डॉकर कंटेनर आपके GNU-Linux डिस्प्ले सर्वर के X11 सर्वर तक पहुंच का परीक्षण करने के लिए। यदि आप किसी भी समस्या में भाग लेते हैं, तो पर्यावरण चर सेट करने पर विचार करें -e QT_DEBUG_PLUGINS=1. इस परिवेश चर को सेट करना डीबगिंग जानकारी के आउटपुट को सक्षम बनाता है, समस्या निवारण प्रक्रिया में सहायता करता है।

जब डॉकर जीयूआई के साथ समाप्त हो गया

पहुंच रद्द करें

दोनों ही मामलों में, से पहुंच रद्द करना न भूलें Docker जब आप कर लें समूह।

xhost -local:docker
सीधे टर्मिनल में छवि परिणाम देखना चाहते हैं?

टर्मिनल का उपयोग करके छवि परिणाम देखने पर निम्नलिखित मार्गदर्शिका देखें


बधाइयाँ! अब आप उपयोग करने के लिए सेट हैं Ultralytics डॉकर के साथ और इसकी शक्तिशाली क्षमताओं का लाभ उठाने के लिए तैयार है। वैकल्पिक स्थापना विधियों के लिए, बेझिझक एक्सप्लोर करें Ultralytics क्विकस्टार्ट डॉक्यूमेंटेशन



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

टिप्पणियाँ