विषयसूची:

रास्पबेरी पाई के लिए डॉकर इमेज बनाएं: 7 कदम
रास्पबेरी पाई के लिए डॉकर इमेज बनाएं: 7 कदम

वीडियो: रास्पबेरी पाई के लिए डॉकर इमेज बनाएं: 7 कदम

वीडियो: रास्पबेरी पाई के लिए डॉकर इमेज बनाएं: 7 कदम
वीडियो: Raspberry Pi 4 - How To Install Docker On Raspberry Pi 2024, नवंबर
Anonim
रास्पबेरी पाई के लिए डॉकर छवि बनाएं
रास्पबेरी पाई के लिए डॉकर छवि बनाएं

यह निर्देश दिखाता है कि रास्पबेरी पाई के लिए डॉकर छवि कैसे बनाई जाए।

चरण 1: डॉकर क्यों?

आप रास्पबेरी पाई (आरपीआई) का उपयोग कई काम कर सकते हैं, छोटे वेब सर्वर, एआई सहायक, रोबोटिक्स … आदि।

आप कई परियोजनाओं को आजमाना चाहते हैं, लेकिन दर्द बिंदु हैं:

निर्माण का समय

आरपीआई प्रसंस्करण शक्ति के लिए उत्सुक नहीं है, और एसडी/यूएसबी ड्राइव ने आईओ गति को सीमित कर दिया है। उपयुक्त इंस्टॉल का उपयोग करें सभी निर्भरता पैकेज के लिए एक घंटे की आवश्यकता होती है और स्रोत के निर्माण के लिए अधिक घंटों की आवश्यकता होती है। विशेष रूप से एआई से संबंधित परियोजनाओं के लिए, प्रयास करने के लिए समय से अधिक प्रतीक्षा करने का समय।

संस्करण संघर्ष

हर कोई एक आरपीआई में कई परियोजनाओं की कोशिश करता है। जब आपने किसी प्रोजेक्ट की कोशिश की है और किसी अन्य पर स्विच करना चाहते हैं, तो आप पिछले प्रोजेक्ट के साथ निर्भरता लाइब्रेरी संस्करण संघर्ष के कारण कुछ बिल्ड विफल हो सकते हैं। कुछ पुस्तकालय कुछ साल पहले विकसित होना बंद कर देते हैं और कुछ बहुत पुराने पुस्तकालयों पर निर्भर होते हैं। इसके विपरीत, सक्रिय परियोजना नवीनतम पुस्तकालयों पर निर्भर थी। दोनों प्रोजेक्ट एक ही एसडी/यूएसबी ड्राइव में सह-अस्तित्व में नहीं हो सकते हैं?

छवि बैकअप

चूंकि कुछ परियोजनाएं सह-अस्तित्व में नहीं हो सकती हैं, इसलिए प्रत्येक प्रोजेक्ट छवि को निर्भर रखने के लिए बस अधिक एसडी/यूएसबी ड्राइव खरीदें। अगर पैसा सीमित नहीं है?. लेकिन यह फ़ाइल/छवि प्रबंधन की कठिनाइयों को बढ़ाता है, कभी-कभी आपको स्वैप एसडी/यूएसबी की आवश्यकता होती है और आप जो चाहते हैं उसे खोजने के लिए कई बार बूट करते हैं।

साझा करना मुश्किल

जब आपने अपना प्रोजेक्ट बनाया और दोस्तों को स्रोत साझा करना चाहते हैं, तो आपके दोस्तों को बिल्ड विफल फ़ीड बैक मिल सकता है। वितरण/पुस्तकालय संस्करण बहुत पुराना या बहुत नया, निर्माण पैरामीटर और कुछ तरकीबें। आपको दूसरों की समस्याओं को हल करने के लिए समय का उपयोग करने की आवश्यकता है, लेकिन स्वयं परियोजना का समर्थन नहीं करना चाहिए।

उपरोक्त दर्द बिंदु इस कुछ वर्षों में मेरा अनुभव है। डॉकर इसमें सबसे ज्यादा मदद कर सकता है।

डॉकर एक पूर्वनिर्मित मूल छवि का चयन करके निर्माण शुरू करता है। उदा. डेबियन: जेसी-स्लिम एक पुराने स्थिर डेबियन हल्के वजन वितरण से शुरू होता है; नोड: 10-बस्टर-स्लिम डेबियन लाइट वेट डिस्ट्रीब्यूशन से शुरू होता है जिसमें Node.js 10 स्थापित होता है। पूर्वनिर्मित छवि छवि को फ्लैश करने, अद्यतन प्राप्त करने और निर्भर पुस्तकालयों को स्थापित करने में अधिक समय बचा सकती है। प्रत्येक प्रोजेक्ट विभिन्न ओएस संस्करण, रनटाइम संस्करण और पुस्तकालय संस्करण से शुरू हो सकता है। जब आप अपना प्रोजेक्ट विकसित करना समाप्त कर लेते हैं, तो आप डॉकर छवि को डॉक हब में धकेल सकते हैं और सभी को साझा कर सकते हैं। आप सभी प्रोजेक्ट डेटा को एक ही एसडी/यूएसबी पर रख सकते हैं (डेटा को अन्य मीडिया में नियमित बैकअप लेना चाहिए)। स्थानीय भंडारण को बचाने के लिए, आप उपयोग न करने पर भी डॉकर छवि को साफ कर सकते हैं, कभी भी आप डॉकर हब से फिर से खींच सकते हैं।

चरण 2: डॉकर ओवरहेड

डॉकर ने एक वर्चुअलाइज़ परत जोड़ी, ओवरहेड एक चिंता का विषय है। मैंने डॉकर ओवरहेड के बारे में बहुत अधिक परीक्षण नहीं किया है। अधिकांश Googled परिणाम बहुत कम ओवरहेड का दावा करते हैं और मुझे यह दस्तावेज़ कुछ संबंधित शोधों के बारे में मिला:

domino.research.ibm.com/library/cyberdig.n…

चरण 3: डॉकर स्थापित करें

बस चलाएं:

कर्ल-एसएसएल https://get.docker.com | श्री

संदर्भ।:

www.raspberrypi.org/blog/docker-comes-to-…

docs.docker.com/get-started/

चरण 4: डोकर छवि का निर्माण

कृपया डॉकटर छवि बनाने के लिए आधिकारिक मार्गदर्शिका खोजें:

docs.docker.com/get-started/part2/

मेरे पास Docker का उपयोग करने वाली 2 परियोजनाएँ हैं, आप Dockerfile को एक संदर्भ के रूप में पा सकते हैं:

BanateCAD को Lua रनटाइम और कुछ अतिरिक्त Lua पुस्तकालयों की आवश्यकता होती है। केवल लुआ 5.1 सभी आवश्यक लुआ पुस्तकालयों के अनुकूल हो सकता है लेकिन यह 2006 का उत्पाद है। नवीनतम डेबियन वितरण जो लुआ 5.1 सफलता का निर्माण कर सकता है वह जेसी (वर्तमान डेबियन पुराने स्थिर से पहले का संस्करण) है। इसलिए मैंने इसे चलाने के लिए लुआ 5.1 पर्यावरण डॉकर छवि बनाई।

github.com/moononournation/BanateCAD/tree/…

OpenCV एक सक्रिय रूप से विकासशील परियोजना है, स्रोत कोड नवीनतम पुस्तकालयों और संकलक पर निर्भर करता है। तो यह असफल, पुस्तकालय विधि हस्ताक्षर, संकलक संस्करण, निर्भरता संघर्ष बनाने का बहुत अधिक मौका है … मैं एक साधारण ऐप बनाने के लिए opencv4nodejs का उपयोग करना चाहता हूं और नवीनतम सुविधाओं की आवश्यकता नहीं है। तो जब मुझे opencv4nodejs सफलता बनाने का कोई तरीका मिला, तो मैं इसे डॉकर छवि में जमा करना चाहता हूं और मेरी वास्तविक एप्लिकेशन कोडिंग करना चाहता हूं।

github.com/moononournation/face-aware-photo…

चरण 5: डेवलपमेंट बिल्ड स्पीड बनाम इमेज साइज

विकास निर्माण गति बनाम छवि आकार
विकास निर्माण गति बनाम छवि आकार
विकास निर्माण गति बनाम छवि आकार
विकास निर्माण गति बनाम छवि आकार

आप पा सकते हैं कि मेरे फेस-अवेयर-फोटो-ओएसडी प्रोजेक्ट में डॉकफाइल के 2 संस्करण हैं:

github.com/moononournation/face-aware-photo…

विकास के दौरान, मुझे RUN कमांड को जितना संभव हो सके विभाजित करना पसंद है और RUN कमांड को अंतिम चरण में बदलने की सबसे अधिक संभावना है। तो विकास परिवर्तन के लिए प्रत्येक निर्माण के लिए, मैं जितना संभव हो सके पिछली निर्मित परत का उपयोग कर सकता हूं और अधिक निर्माण गति को बचा सकता हूं।

इसके विपरीत, मैं रिलीज से पहले सभी रन कमांड को एक में जोड़ दूंगा। कम परत डॉकर छवि आकार को काफी कम कर सकती है। मेरा फेस-अवेयर-फोटो-ओएसडी प्रोजेक्ट उदाहरण के रूप में यह आकार में 100 एमबी से अधिक कम कर सकता है।

चरण 6: मल्टी आर्क इमेज

मल्टी आर्क इमेज
मल्टी आर्क इमेज

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

एक x86 कंप्यूटर का उपयोग करें जो आपको डॉकर छवि बनाने में भी मदद कर सकता है, कृपया यहां अधिक विवरण प्राप्त करें:

www.docker.com/blog/multi-arch-images/

साधारण 2 कमांड समानांतर में x86 और ARM डॉकर इमेज बना सकते हैं:

डॉकर बिल्डएक्स क्रिएट --यूज

डॉकर बिल्डएक्स बिल्ड --प्लेटफॉर्म लिनक्स/एएमडी 64, लिनक्स/आर्म-टी मूनोनर्नेशन/डेबियन-इमेजमैजिक-लुआ-मेशलैब: 1.0.1 --पुश।

मल्टी आर्क एक ही डॉकर इमेज टैग के साथ मल्टी प्लेटफॉर्म इमेज बना सकता है, जिससे आपका प्रोजेक्ट अलग-अलग मशीन में निर्बाध रूप से चल सकता है। जैसे

डॉकर रन-इट मूननोर्नेशन/डेबियन-इमेजमैजिक-लुआ-मेशलैब:1.0.1

कोई फर्क नहीं पड़ता कि आप आरपीआई या अपने x86 कंप्यूटर पर उपरोक्त आदेश चलाते हैं, आप लुआ रनटाइम वातावरण प्राप्त कर सकते हैं।

चरण 7: हैप्पी आरपीआई

अब आप अपनी आरपीआई परियोजना को और अधिक आसानी से विकसित और साझा कर सकते हैं!

सिफारिश की: