مرحبا يا هبر! الحاوية هي نهج لتطوير البرامج يتم فيه تجميع التطبيق أو الخدمة وتبعياتها وتكوينها (ملفات بيان النشر المجردة) معًا في صورة حاوية. في هذه المقالة ، سننظر في إنشاء صورة عامل ميناء واستخدامها لتشغيل R و Python shell والمزيد. انضم الآن!

يمكن اختبار تطبيق حاويات كوحدة نمطية ونشره كمثيل حاوية في نظام التشغيل (OS) للعقدة الحالية.
Docker هو مشروع
مفتوح المصدر لأتمتة نشر التطبيقات في شكل حاويات محمولة ومكتفية ذاتيًا يمكن أن تعمل في السحابة أو في أماكن العمل. انظر
هنا لمزيد من المعلومات.
يعد Microsoft Machine Learning Server نظامًا مؤسسيًا مرنًا لتحليل البيانات القابلة للتطوير وإنشاء تطبيقات ذكية والعثور على معلومات قيمة للأعمال مع دعم كامل لـ Python و R. يعني مصطلح "
التشغيل " نشر النماذج والتعليمات البرمجية بلغات R و Python على Microsoft Machine Learning Server في شكل
خدمات ويب والاستخدام اللاحق لهذه الخدمات في تطبيقات العميل لتحسين كفاءة الشركة.
في هذه المقالة ، سنلقي نظرة على كيفية إنشاء صورة عامل إرساء تحتوي على
Machine Learning Server 9.3 باستخدام ملفات Docker ، وكيفية استخدامها لإجراء العمليات التالية:
- تشغيل قذيفة R.
- بدء تشغيل قذيفة Python.
- قم بتشغيل Jupyter Notebook.
- شغّل تهيئة OneBox.
- بدء خدمة الويب ر.
- بدء خدمة ويب Python.
المكونات المطلوبة
أي جهاز Linux افتراضي مثبت عليه برنامج إصدار مجتمع عامل الميناء (CE). في إعداد هذه المقالة ، قمت بنشر
Ubuntu 16.04 VM وتثبيت docker CE .
الخطوة الأولى
أولاً ، سنقوم بإنشاء صورة تسمى mlserver مع تثبيت
Machine Learning Server 9.3 باستخدام ملف عامل إرساء التالي:
FROM ubuntu:16.04 RUN apt-get -y update \ && apt-get install -y apt-transport-https wget \ && echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ xenial main" | tee /etc/apt/sources.list.d/azure-cli.list \ && wget https:
استخدم
الأمر docker
build لإنشاء صورة mlserver باستخدام ملف docker أعلاه:
docker build -f mlserver-dockerfile -t mlserver.
تحقق من اكتمال إنشاء صورة mlserver بنجاح عن طريق تشغيل الأمر التالي:
docker images
R Shell Launch
docker run -it mlserver R

إطلاق قذيفة بايثون
docker run -it mlserver mlserver-python

قم بتشغيل Jupyter Notebook
docker run -p 8888:8888 -it mlserver /opt/microsoft/mlserver/9.3.0/runtime/python/bin/jupyter notebook --no-browser --port=8888 --ip=0.0.0.0 --allow-root
يؤدي تشغيل الأمر أعلاه إلى إعطاء رابط من خلال فتحه في متصفح ، يمكنك استخدام Jupyter Notebooks.

شغِّل تهيئة OneBox
يمكن تكوين Microsoft Learning Server بعد التثبيت لاستخدامه كخادم نشر واستضافة خدمات الويب التحليلية
للتشغيل .
FROM ubuntu:16.04 RUN apt-get -y update \ && apt-get install -y apt-transport-https wget \ && echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ xenial main" | tee /etc/apt/sources.list.d/azure-cli.list \ && wget https:
قم بإنشاء صورة mlserver-onebox باستخدام ملف docker أعلاه:
docker build -f mlserver-onebox-dockerfile -t mlserver-onebox.
تحقق من اكتمال إنشاء صورة mlserver-onebox بنجاح عن طريق تشغيل الأمر التالي:
docker images
قم بتشغيل حاوية onebox باستخدام الأمر:
docker run --name mlserver-onebox-container -dit mlserver-onebox
تحقق من حالة الحاوية مع:
docker logs mlserver-onebox-container
بعد التحقق من الأمر أعلاه بأن اختبارات التشخيص كانت ناجحة ، يمكنك استخدام هذه الحاوية كمربع واحد (يجب أن تحتوي بيانات سجل Docker على السطر التالي: "لقد مرت جميع الاختبارات التشخيصية".).
احصل على عنوان IP الخاص بالحاوية عن طريق تشغيل الأمر:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mlserver-onebox-container '172.17.0.3'
واستخدامها كمربع واحد:
az login --mls --mls-endpoint "http://172.17.0.3:12800" --username "admin" --password "Microsoft@2018" az ml admin diagnostic run
بدء خدمة الويب R
يمكننا أيضًا إنشاء صورة مع خدمة ويب مُهيأة مسبقًا بحيث تكون جاهزة للاستخدام بمجرد نشر الحاوية. فيما يلي مثال على إنشاء صورة باستخدام خدمة الويب R لمحاكاة
الإرسال اليدوي ، الذي تم تكوينه مسبقًا بداخله.
FROM ubuntu:16.04 RUN apt-get -y update \ && apt-get install -y apt-transport-https wget \ && echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ xenial main" | tee /etc/apt/sources.list.d/azure-cli.list \ && wget https:
أنشئ صورة انتقال يدوي باستخدام ملف عامل الميناء أعلاه:
docker build -f r-manualtransmission-dockerfile -t rmanualtransmission.
تحقق من اكتمال إنشاء صورة rmanualtransmission بنجاح عن طريق تشغيل الأمر:
docker images
قم بتشغيل الحاوية باستخدام الأمر:
docker run --name rmanualtransmission-container -dit rmanualtransmission
تحقق من حالة الحاوية مع:
docker logs rmanualtransmission-container
بعد التحقق من نجاح الاختبارات التشخيصية ونشر خدمة الويب ، يمكنك البدء في استخدامها.
احصل على عنوان IP الخاص بالحاوية عن طريق تشغيل الأمر:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' rmanualtransmission-container '172.17.0.3'
يمكنك استخدام أو الحصول على ملف إعدادات خدمة الويب swagger.json R لمحاكاة النقل اليدوي باستخدام أوامر curl:
apt-get -y install jq curl -s --header "Content-Type: application/json" --request POST --data '{"username":"admin","password":"Microsoft@2018"}' http:
ملف swagger.json مناسب
لإنشاء مكتبة عميل بأي لغة .
تشغيل خدمة ويب Python
فيما يلي مثال على
إنشاء صورة باستخدام خدمة الويب Python لمحاكاة ناقل الحركة اليدوي الذي تم تكوينه مسبقًا بداخله.
FROM ubuntu:16.04 RUN apt-get -y update \ && apt-get install -y apt-transport-https wget \ && echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ xenial main" | tee /etc/apt/sources.list.d/azure-cli.list \ && wget https:
قم بإنشاء صورة نقل حراري باستخدام ملف عامل الميناء أعلاه:
docker build -f py-manualtransmission-dockerfile -t pymanualtransmission.
تحقق من اكتمال عملية إنشاء صورة pymanualtransmission بنجاح عن طريق تشغيل الأمر:
docker images
قم بتشغيل الحاوية باستخدام الأمر:
docker run --name pymanualtransmission-container -dit pymanualtransmission
تحقق من حالة الحاوية مع:
docker logs pymanualtransmission-container
بعد التحقق من نجاح الاختبارات التشخيصية ونشر خدمة الويب ، يمكنك البدء في استخدامها.
احصل على عنوان IP الخاص بالحاوية عن طريق تشغيل الأمر:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' pymanualtransmission-container '172.17.0.3'
يمكنك الحصول على ملف swagger.json لإعداد خدمة ويب Python لمحاكاة النقل اليدوي باستخدام أوامر curl:
apt-get -y install jq curl -s --header "Content-Type: application/json" --request POST --data '{"username":"admin","password":"Microsoft@2018"}' http:
ملف swagger.json مناسب
لإنشاء مكتبة عميل بأي لغة .
ملاحظة يمكنك أيضًا تغيير إعدادات موقع appsettings.json على الويب باستخدام ملف docker السحري وتمكين
مصادقة LDAP / AAD .
ملحقات
يمكن إرسال صور عامل الميناء المحلية التي تم إنشاؤها إلى
Azure Container Registry (ACR ).
قم بإنشاء مجموعة في Azure Kubernetes Service (AKS) باستخدام صور من ACR
يمكن أن تتدرج
تلقائيًا إلى كلا الجانبين باستخدام حوامل Autoscale.
الروابط