جدول المحتويات:
- الخطوة 1: لماذا Docker؟
- الخطوة 2: Docker Overhead
- الخطوة الثالثة: تثبيت Docker
- الخطوة 4: بناء صورة عامل ميناء
- الخطوة 5: التطوير ، بناء السرعة مقابل حجم الصورة
- الخطوة 6: صور متعددة القوس
- الخطوة 7: Happy RPi
فيديو: بناء صورة Docker لـ Raspberry Pi: 7 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
توضح هذه التعليمات كيفية إنشاء صورة Docker لـ Raspberry Pi.
الخطوة 1: لماذا Docker؟
يمكنك استخدام Raspberry Pi (RPi) للقيام بالعديد من الأشياء ، وخادم ويب صغير ، ومساعد AI ، و Robotics … إلخ.
العديد من المشاريع التي تريد تجربتها ، لكن نقاط الألم هي:
حان وقت البناء
لا يحرص RPi على طاقة المعالجة ، ويحد محرك أقراص SD / USB من سرعة الإدخال / الإخراج. يتطلب استخدام apt install all التبعيّة ساعة ويتطلب بناء المصدر ساعات أكثر. خاصة بالنسبة للمشاريع المتعلقة بالذكاء الاصطناعي ، حان الوقت للانتظار أكثر من الوقت للمحاولة.
تعارض الإصدار
الجميع يحاول العديد من المشاريع في RPi واحد. عندما تجرب مشروعًا وترغب في التبديل إلى مشروع آخر ، قد تجد بعض فشل الإنشاء بسبب تعارض إصدار مكتبات التبعية مع المشروع السابق. توقفت بعض المكتبات عن التطور منذ بضع سنوات وتعتمد على بعض المكتبات القديمة جدًا. في المقابل ، اعتمد المشروع النشط على أحدث المكتبات. لا يمكن أن يتواجد كلا المشروعين في نفس محرك أقراص SD / USB ؟.
النسخ الاحتياطي للصور
نظرًا لأن بعض المشاريع لا يمكن أن تتواجد معًا ، ما عليك سوى شراء المزيد من محرك أقراص SD / USB للحفاظ على كل صورة مشروع تعتمد على هذه الطريقة. إذا كان المال لا يقتصر ؟. ولكنه يزيد من صعوبات إدارة الملفات / الصور ، وأحيانًا تحتاج إلى تبديل SD / USB والتمهيد عدة مرات لمعرفة ما تريد.
من الصعب المشاركة
عندما أنشأت مشروعك وترغب في مشاركة المصدر مع الأصدقاء ، فقد يحصل أصدقاؤك على خلاصة الإصدار الفاشلة. إصدار التوزيع / المكتبات قديم جدًا أو جديد جدًا ، وبناء المعلمات وبعض الحيل. تحتاج إلى استغلال الوقت لحل مشاكل بناء الآخرين ولكن لا تدعم المشروع نفسه.
نقاط الألم المذكورة أعلاه هي تجربتي في هذه السنوات القليلة. يمكن أن يساعد Docker في معظمها.
يبدأ Docker في الإنشاء من تحديد صورة أصل تم إنشاؤها مسبقًا. على سبيل المثال Debian: تبدأ jessie-slim من توزيع Debian القديم المستقر الخفيف الوزن ؛ العقدة: 10-buster-slim تبدأ من توزيع Debian للوزن الخفيف مع تثبيت Node.js 10. يمكن أن توفر الصورة التي تم إنشاؤها مسبقًا الكثير من الوقت في وميض الصورة ، والحصول على تحديث وتثبيت مكتبات معتمدة. يمكن أن يبدأ كل مشروع من إصدار مختلف لنظام التشغيل وإصدار وقت التشغيل وإصدار المكتبات. عند الانتهاء من تطوير مشروعك الخاص ، يمكنك دفع صورة Docker إلى Docker hub ومشاركتها مع الجميع. يمكنك الاحتفاظ بجميع بيانات المشروع على نفس بطاقة SD / USB (يجب نسخ احتياطي روتيني للبيانات إلى وسائط أخرى). لحفظ التخزين المحلي ، يمكنك حتى تنظيف صورة Docker عند عدم استخدامها ، في أي وقت يمكنك السحب من Docker hub مرة أخرى.
الخطوة 2: Docker Overhead
أضاف Docker طبقة افتراضية واحدة ، يمثل الحمل مصدر قلق. لم أختبر الكثير حول Docker. تدعي معظم النتائج التي تم بحثها في Google أن النفقات العامة منخفضة للغاية ووجدت هذا المستند حول بعض الأبحاث ذات الصلة:
domino.research.ibm.com/library/cyberdig.n…
الخطوة الثالثة: تثبيت Docker
ببساطة قم بتشغيل:
curl -sSL https://get.docker.com | ش
المرجع:
www.raspberrypi.org/blog/docker-comes-to-…
docs.docker.com/get-started/
الخطوة 4: بناء صورة عامل ميناء
يرجى الاطلاع على الدليل الرسمي لبناء صورة عامل ميناء:
docs.docker.com/get-started/part2/
لدي مشروعان باستخدام Docker ، قد تجد Dockerfile كمرجع:
يتطلب BanateCAD وقت تشغيل Lua وبعض مكتبات Lua الإضافية. يمكن أن يتوافق Lua 5.1 فقط مع جميع مكتبات Lua المطلوبة ولكنه نتاج عام 2006. أحدث توزيعة دبيان التي يمكنها بناء نجاح Lua 5.1 هي Jessie (الإصدار الذي يسبق مستقر دبيان القديم الحالي). لذلك قمت ببناء صورة Docker لبيئة Lua 5.1 لتشغيلها
github.com/moononournation/BanateCAD/tree/…
OpenCV هو مشروع متطور بنشاط ، وتعتمد شفرة المصدر على أحدث المكتبات والمترجم. لذا فهي فرصة كبيرة جدًا للإنشاء الفاشل ، وتوقيع أسلوب المكتبات ، وإصدار المترجم ، وتعارض التبعية … أود استخدام opencv4nodejs لإنشاء تطبيق بسيط ولا يتطلب أحدث الميزات. لذلك عندما وجدت طريقة لبناء نجاح opencv4nodejs ، أود تجميدها إلى صورة Docker والقيام بترميز تطبيقي الفعلي
github.com/moononournation/face-aware-phot…
الخطوة 5: التطوير ، بناء السرعة مقابل حجم الصورة
ربما وجدت أن مشروع OSD الخاص بي يحتوي على نسختين من Dockfile:
github.com/moononournation/face-aware-phot…
أثناء التطوير ، أحب تقسيم أمر RUN بأصغر حجم ممكن وأرتب على الأرجح لتغيير أمر RUN إلى الخطوة الأخيرة. لذلك بالنسبة لكل تصميم لتغيير التطوير ، يمكنني الاستفادة من الطبقة السابقة المبنية قدر الإمكان وتوفير الكثير من سرعة البناء.
في المقابل ، سأجمع جميع أوامر RUN في واحد قبل الإصدار. يمكن أن تقلل الطبقة الأقل حجم صورة Docker بشكل كبير. مشروع OSD الخاص بي بصور التعرف على الوجه كمثال يمكن أن يقلل حجمه بأكثر من 100 ميجابايت.
الخطوة 6: صور متعددة القوس
كما ذكرنا من قبل ، RPi ليس حريصًا على قوة المعالجة. قد لا يكون استخدام صورة RPi build Docker خيارًا جيدًا ، خاصةً عندما يقوم RPi الوحيد بتشغيل مشاريع أخرى.
يمكن أن يساعدك استخدام جهاز كمبيوتر x86 أيضًا في إنشاء صورة Docker ، يرجى العثور على مزيد من التفاصيل هنا:
www.docker.com/blog/multi-arch-images/
يمكن للأمرين البسيطين إنشاء صورة x86 و ARM Docker بالتوازي:
إنشاء عامل البناء - use
docker buildx build - النظام الأساسي لينكس / amd64 ، لينكس / الذراع -t moononournation / debian-imagemagick-lua-meshlab: 1.0.1 --push.
يمكن لـ Multi Arch إنشاء صورة متعددة المنصات باستخدام نفس علامة صورة Docker ، بحيث يمكن تشغيل مشروعك في جهاز مختلف بسلاسة. على سبيل المثال
docker run -it moononournation / debian-imagemagick-lua-meshlab: 1.0.1
بغض النظر عن قيامك بتشغيل الأمر أعلاه على RPi أو كمبيوتر x86 الخاص بك ، يمكنك الحصول على بيئة تشغيل Lua.
الخطوة 7: Happy RPi
يمكنك الآن تطوير ومشاركة مشروع RPi الخاص بك بسهولة أكبر!
موصى به:
صورة شخصية متحركة لهاري بوتر مع Raspberry Pi: 3 خطوات
DIY صورة هاري بوتر المتحركة مع Raspberry Pi: صورة متحركة مستوحاة من أفلام هاري بوتر. تم تصميم Moving Portrait باستخدام كمبيوتر محمول قديم مكسور. يمكن أيضًا إنشاءه باستخدام Raspberry Pi المتصل بشاشة عرض أو شاشة قديمة. يبدو نقل إطار البورتريه رائعًا ، يمكننا مشاهدة الصور العائلية ،
إطار صورة USB Raspberry Pi: 5 خطوات
إطار صورة USB Raspberry Pi: إطار صورة Raspberry Pi USB يقوم Raspberry Pi بتشغيل الصور تلقائيًا من محرك أقراص فلاش USB المُدرج ويتم إيقاف تشغيله عن طريق الضغط على الزر المُدرج في الجهاز. يتم استخدام feh لعرض الصور من برنامج نصي USB و python لإغلاق الجهاز
التقاط صورة ثابتة باستخدام Raspberry Pi: 9 خطوات
التقاط صورة ثابتة باستخدام Raspberry Pi: كيفية التقاط صورة ثابتة باستخدام Raspberry Pi
كيفية إنشاء صورة واحدة مركزة تمامًا من عدة خطوات مركزة جزئيًا: 4 خطوات
كيفية إنشاء صورة واحدة مركزة تمامًا من عدة صور مركزة جزئيًا: أقترح استخدام برنامج Helicon Focus. تتوفر إصدارات Windows و Mac في موقع d-Stidio ، وقد تم تصميم البرنامج للتصوير الكلي والتصوير الدقيق والتصوير فائق البؤرة للمناظر الطبيعية للتعامل مع مشكلة عمق المجال الضحل
كيفية بناء صندوق مكبر صوت للجيتار أو بناء اثنين من أجل الاستريو الخاص بك: 17 خطوة (بالصور)
كيفية بناء صندوق مكبر صوت جيتار أو بناء اثنين من أجل الاستريو الخاص بك: أردت مكبر صوت جيتار جديد مع مضخم الصوت الأنبوبي الذي أقوم ببنائه. سيبقى مكبر الصوت في متجري حتى لا يكون هناك أي شيء مميز للغاية. قد يتضرر غطاء Tolex بسهولة شديدة لذا قمت برش السطح الخارجي باللون الأسود بعد رمال خفيفة