Quickstart: نشر مثيل حاوية في Azure باستخدام Azure CLI
استخدام Azure Container Instances لتشغيل حاويات Docker بدون خادم في Azure ببساطة وبسرعة. انشر تطبيقاً على مثيل حاوية عند الطلب عندما لا تحتاج إلى نظام أساسي لتنظيم حاوية كاملة، مثل Azure Kubernetes Service.
في هذا البدء السريع، يمكنك استخدام Azure CLI لنشر حاوية Docker معزولة وإتاحة تطبيقه باسم مجال مؤهل بالكامل (FQDN). بعد بضع ثوانٍ من تنفيذ أمر النشر الفردي، يمكنك التصفح وصولاً إلى التطبيق الذي يُشغل في الحاوية:
إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.
المتطلبات الأساسية
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع التشغيل السريع ل Bash في Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
يتطلب بدء التشغيل السريع هذا توافر الإصدار 2.0.55 من Azure CLI أو الأحدث. إذا كنت تستخدم Azure Cloud Shell، يتم تثبيت أحدث إصدار بالفعل.
تحذير
أفضل الممارسات: يتم تخزين بيانات اعتماد المستخدم التي تم تمريرها عبر واجهة سطر الأوامر (CLI) كنص عادي في الخلفية. يعد تخزين بيانات الاعتماد في نص عادي خطرا أمنيا؛ تنصح Microsoft العملاء بتخزين بيانات اعتماد المستخدم في متغيرات بيئة CLI للتأكد من تشفيرها/تحويلها عند تخزينها في الخلفية.
إنشاء مجموعة موارد
يجب توزيع container instances مثل الموارد الخاصة بـ Azure على مجموعة الموارد. تسمح لك مجموعات الموارد بتنظيم وإدارة موارد Azure ذات الصلة.
أولاً، أنشئ مجموعة موارد باسم myResourceGroup في موقع eastus باستخدام الأمر التالي az group create:
az group create --name myResourceGroup --location eastus
إنشاء حاوية
الآن بعد أن أصبح لديك مجموعة موارد، يمكنك تشغيل حاوية في Azure. لإنشاء مثيل حاوية باستخدام Azure CLI، قم بتوفير اسم مجموعة موارد واسم مثيل الحاوية وصورة حاوية Docker إلى الأمر az container create. في هذه البداية السريعة، يمكن استخدام صورة mcr.microsoft.com/azuredocs/aci-helloworld
العامة. تعمل هذه الصورة على حزم تطبيق ويب صغير مكتوب بلغة Node.js لصفحة HTML ثابتة.
يمكنك عرض الحاويات الخاصة بك على الإنترنت عن طريق تحديد منفذ واحد أو أكثر لفتحه أو تسمية DNS أو كليهما. في هذه البداية السريعة، تقوم بنشر حاوية مع تسمية اسم DNS بحيث يمكن الوصول إلى تطبيق الويب بشكل عام.
قم بتنفيذ أمر مشابه لما يلي لبدء مثيل حاوية. قم بتعيين قيمة --dns-name-label
فريدة داخل منطقة Azure حيث تقوم بإنشاء المثيل. إذا تلقيت رسالة خطأ "تسمية اسم DNS غير متوفرة"، فجرب تسمية اسم DNS مختلفة.
az container create --resource-group myResourceGroup --name mycontainer --image mcr.microsoft.com/azuredocs/aci-helloworld --dns-name-label aci-demo --ports 80
في غضون ثوانٍ قليلة، يجب أن تحصل على استجابة من Azure CLI تشير إلى اكتمال النشر. تحقق من حالتها باستخدام الأمر az container show:
az container show --resource-group myResourceGroup --name mycontainer --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table
عند تشغيل الأمر، يتم عرض اسم المجال المؤهل بالكامل للحاوية (FQDN) وحالة التزويد الخاصة به.
FQDN ProvisioningState
--------------------------------- -------------------
aci-demo.eastus.azurecontainer.io Succeeded
إذا تم ProvisioningState
نجاح الحاوية، فانتقل إلى FQDN الخاص بها في متصفحك. إذا كانت رؤية صفحة ويب مشابهة لما يلي، فتهانينا! نجح نشر تطبيق قيد التشغيل في حاوية Docker على Azure.
إذا لم يتم عرض التطبيق في البداية، فقد تحتاج إلى الانتظار بضع ثوانٍ أثناء انتشار DNS، ثم حاول تحديث متصفحك.
اسحب سجلات الحاوية
عندما تحتاج إلى استكشاف أخطاء حاوية أو التطبيق الذي يتم تشغيله وإصلاحها (أو مجرد الاطلاع على ناتجها)، ابدأ بعرض سجلات مثيل الحاوية.
اسحب سجلات مثيل الحاوية باستخدام الأمر "az container logs":
az container logs --resource-group myResourceGroup --name mycontainer
يعرض الإخراج سجلات الحاوية، ويجب أن يُظهر طلبات HTTP GET التي تم إنشاؤها عند عرض التطبيق في متصفحك.
listening on port 80
::ffff:10.240.255.55 - - [21/Mar/2019: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 - - [21/Mar/2019: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 - - [21/Mar/2019: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"
إرفاق تدفقات الإخراج
بالإضافة إلى عرض السجلات، يمكنك إرفاق تدفقات الخطأ القياسية المحلية والمعيارية الخاصة بك إلى تلك الموجودة في الحاوية.
أولاً، قم بتنفيذ الأمر "az container attach" لإرفاق وحدة التحكم المحلية الخاصة بك بتدفقات إخراج الحاوية:
az container attach --resource-group myResourceGroup --name mycontainer
بمجرد إرفاقه، قم بتحديث المستعرض الخاص بك عدة مرات لإنشاء بعض المخرجات الإضافية. عند الانتهاء، افصل وحدة التحكم الخاصة بك مع Control+C
. يجب أن ترى مخرجات مماثلة لما يلي:
Container 'mycontainer' is in state 'Running'...
(count: 1) (last timestamp: 2019-03-21 17:27:20+00:00) pulling image "mcr.microsoft.com/azuredocs/aci-helloworld"
(count: 1) (last timestamp: 2019-03-21 17:27:24+00:00) Successfully pulled image "mcr.microsoft.com/azuredocs/aci-helloworld"
(count: 1) (last timestamp: 2019-03-21 17:27:27+00:00) Created container
(count: 1) (last timestamp: 2019-03-21 17:27:27+00:00) Started container
Start streaming logs:
listening on port 80
::ffff:10.240.255.55 - - [21/Mar/2019: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 - - [21/Mar/2019: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 - - [21/Mar/2019: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 - - [21/Mar/2019:17:47:01 +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.56 - - [21/Mar/2019:17:47:12 +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"
تنظيف الموارد
عند الانتهاء من الحاوية، قم بإزالتها باستخدام الأمر az container delete:
az container delete --resource-group myResourceGroup --name mycontainer
للتحقق من حذف الحاوية، قم بتنفيذ الأمر az container list:
az container list --resource-group myResourceGroup --output table
يجب ألا تظهر حاوية mycontainer في إخراج الأمر. إذا لم يكن لديك أي حاويات أخرى في مجموعة الموارد، فلن يتم عرض أي إخراج.
إذا انتهيت من مجموعة الموارد myResourceGroup وجميع الموارد التي تحتوي عليها، فاحذفها باستخدام الأمر az group delete:
az group delete --name myResourceGroup
الخطوات التالية
في هذا التشغيل السريع، قمت بإنشاء مثيل حاوية Azure باستخدام صورة Microsoft عامة. إذا كنت ترغب في إنشاء صورة حاوية ونشرها من سجل حاويات Azure خاص، تابع البرنامج التعليمي لمثيلات حاويات Azure.
لتجربة خيارات تشغيل الحاويات في نظام تزامن على Azure، راجع الخطوات السريعة لخدمة Azure Kubernetes (AKS).