بداية سريعة: نشر مثيل حاوية في Azure باستخدام CLI Docker

استخدام Azure Container Instances لتشغيل حاويات Docker بدون خادم في Azure ببساطة وبسرعة. النشر إلى حاوية افتراضية عند الطلب عند تطوير تطبيقات السحابة الأصلية والتبديل بسلاسة من التطوير المحلي إلى النشر السحابي.

في هذه البداية السريعة، يمكنك استخدام أوامر Docker CLI الأصلية لنشر حاوية Docker وجعل تطبيقها متوفراً في مثيلات حاوية Azure. تمكن هذه الإمكانية من خلال integration between Docker and Azure. بعد بضع ثوانٍ من تنفيذ docker run أمر، يمكنك التصفح وصولاً إلى التطبيق الذي يُشغل في الحاوية:

تم نشر التطبيق باستخدام مثيلات حاوية Azure المعروضة في المتصفح

إذا لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.

لهذه البداية السريعة، يلزم الإصدار 2.3.0.5 من Docker Desktop أو إصدار أحدث، والمتوفر لنظام التشغيل Windows أو macOS. أو تثبيت Docker ACI Integration CLI for Linux.

هام

ليست كل ميزات حاويات Azure الافتراضية مدعومة. تقديم ملاحظات حول تكامل Docker-Azure بإنشاء مشكلة في مستودع aci-integration-beta GitHub.

أنشئ سياقاً خاصّاً بـ Azure.

لا تستخدم أوامر Docker لتشغيل Azure Container Instances، سجل الدخول أولاً إلي Azure:

docker login azure

عند مطالبتك بإدخال Azure credentials أو تحديدها.

إنشاء سياق ACI عن طريق تشغيلdocker context create aci. يربط هذا السياق Docker من خلال الاشتراك في Azure ومجموعة الموارد بحيث يمكنك إنشاء container instances وإدارتها. على سبيل المثال، لإنشاء سياق يسمى myacicontext:

docker context create aci myacicontext

عند مطالبتك بتحديد معرف اشتراك Azure، ثم حدد مجموعة الموارد القائمة أو أنشئ مجموعة موارد جديدة. إذا اخترت مجموعة موارد جديدة، فإنه يتم إنشاؤها من خلال الاسم المعد من قبل النظام. يجب توزيع container instances مثل الموارد الخاصة بـ Azure على مجموعة الموارد. تسمح لك مجموعات الموارد بتنظيم موارد Azure ذات الصلة وإدارتها.

تشغيل docker context ls للتأكد من إضافة سياق ACI إلى سياقات Docker الخاص بك:

docker context ls

إنشاء حاوية

بعد إنشاء سياق Docker، يمكنك إنشاء حاوية في Azure. في هذه البداية السريعة، يمكن استخدام صورة mcr.microsoft.com/azuredocs/aci-helloworld العامة. تعمل هذه الصورة على حزم تطبيق ويب صغير مكتوب بلغة Node.js لصفحة HTML ثابتة.

أولاً، التغيير إلى سياق ACI. يتم تشغيل جميع أوامر Docker اللاحقة في هذا السياق.

docker context use myacicontext

تشغيل الأمر التالي docker run لإنشاء حاوية Azure الافتراضية مع عرض المنفذ 80 للإنترنت:

docker run -p 80:80 mcr.microsoft.com/azuredocs/aci-helloworld

نموذج إخراج للنشر الناجح:

[+] Running 2/2
 ⠿ hungry-kirch            Created                                                                               5.1s
 ⠿ single--container--aci  Done                                                                                 11.3s
hungry-kirch

تشغيل docker ps للحصول على تفاصيل حول الحاوية قيد التشغيل، بما في ذلك عنوان IP العام:

docker ps

يُظهر نموذج الإخراج عنوان IP عام، في هذه الحالة 52.230.225.232:

CONTAINER ID        IMAGE                                        COMMAND             STATUS              PORTS
hungry-kirch        mcr.microsoft.com/azuredocs/aci-helloworld                       Running             52.230.225.232:80->80/tcp

الانتقال الآن إلى عنوان IP في متصفحك. إذا كانت رؤية صفحة ويب مشابهة لما يلي، فتهانينا! نجح نشر تطبيق قيد التشغيل في حاوية Docker على Azure.

تم نشر التطبيق باستخدام مثيلات حاوية Azure المعروضة في المتصفح

اسحب سجلات الحاوية

عند الحاجة إلى استكشاف أخطاء حاوية أو التطبيق الذي تشغله (أو مجرد الاطلاع على مخرجاته)، ابدأ بعرض سجلات حالات الحاوية.

على سبيل المثال، تشغيل الأمر docker logs لمشاهدة سجلات الحاوية hungry-kirch في سياق ACI:

docker logs hungry-kirch

يعرض الإخراج سجلات الحاوية، ويجب أن يُظهر طلبات HTTP GET التي أُنشئت عند عرض التطبيق في متصفحك.

listening on port 80
::ffff:10.240.255.55 - - [07/Jul/2020:17:43:53 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [07/Jul/2020:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [07/Jul/2020:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

تنظيف الموارد

عند الانتهاء من الحاوية، يمكن تشغيل docker rm للإزالة. يوقف هذا الأمر وتُحذف حاوية Azure الافتراضية.

docker rm hungry-kirch

الخطوات التالية

في هذه البداية السريعة، أنشأت مثيل حاوية Azure من صورة عامة باستخدام التكامل بين Docker وAzure. التعرف على المزيد حول سيناريوهات التكامل في وثائق Docker .

يمكن أيضاً استخدام ملحق Docker لـ Visual Studio Code للحصول على تجربة متكاملة لتطوير وتشغيل وإدارة الحاويات والصور والسياقات.

لاستخدام أدوات Azure لإنشاء مثيلات الحاوية وإدارتها، يرجى الرجوع للخطوات السريعة الأخرى باستخدام Azure CLI و Azure PowerShell و مدخل Azure و نموذجAzure Resource Manager.

عند الرغبة في استخدام Docker Compose لتعريف تطبيق متعدد الحاويات محلياً وتشغيله ومن ثم التبديل إلى Azure Container Instances، يجب المتابعة إلى البرنامج التعليمي.