البرنامج التعليمي: إنشاء صور حاوية على نظام مجموعة Linux Service Fabric

هذا البرنامج التعليمي هو جزء من سلسلة توضح كيفية استخدام الحاويات في نظام مجموعة Linux Service Fabric. في هذا البرنامج التعليمي، يتم إعداد تطبيق متعدد الحاويات للاستخدام مع Service Fabric. في البرامج التعليمية اللاحقة، يتم استخدام هذه الصور كجزء من تطبيق Service Fabric. في هذا البرنامج التعليمي، ستتعلم كيفية:

  • استنساخ مصدر التطبيق من GitHub
  • إنشاء صورة الحاوية من مصدر التطبيق
  • نشر مثيل Azure Container Registry (ACR)
  • وضع علامة على صورة حاوية لـ ACR
  • تحميل الصورة إلى ACR

ستتعلم في سلسلة البرامج التعليمية هذه كيفية:

المتطلبات الأساسية

  • إعداد بيئة تطوير Linux لـ Service Fabric. اتبع التعليمات هنا لإعداد بيئة Linux الخاصة بك.
  • يتطلب هذا البرنامج التعليمي تشغيل الإصدار 2.0.4 من Azure CLI أو إصدار أحدث. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أوالترقية، فراجع تثبيت Azure CLI.
  • بالإضافة إلى ذلك، يتطلب أن يتوفر لديك اشتراك Azure. لمزيد من المعلومات حول الإصدار التجريبي المجاني، انتقل هنا.

الحصول على التعليمة البرمجية للتطبيق

نموذج التطبيق المستخدم في هذا البرنامج التعليمي هو تطبيق تصويت. يتكون التطبيق من مكون ويب أمامي ومثيل Redis خلفي. تتم تعبئة المكونات في صور حاوية.

استخدم git لتنزيل نسخة من التطبيق إلى بيئة التطوير الخاصة بك.

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/

يحتوي الحل على مجلدين وملف 'docker-compose.yml'. يحتوي مجلد 'azure-vote' على خدمة الواجهة الأمامية لـ Python إلى جانب Dockerfile المُستخدم لبناء الصورة. يحتوي الدليل 'Voting' على حزمة تطبيق Service Fabric التي تم نشرها في نظام المجموعة. تحتوي هذه الدلائل على الأصول اللازمة لهذا البرنامج التعليمي.

إنشاء صور الحاوية

داخل الدليل azure-votes، قم بتشغيل الأمر التالي لإنشاء صورة لمكون الويب للواجهة الأمامية. يستخدم هذا الأمر Dockerfile في هذا الدليل لإنشاء الصورة.

docker build -t azure-vote-front .

ملاحظة

إذا تم رفض الإذن، فاتبع هذه الوثائق حول كيفية العمل مع docker دون sudo.

قد يستغرق هذا الأمر بعض الوقت نظراً للحاجة إلى سحب التبعيات الضرورية من Docker Hub. عند الانتهاء، استخدم الأمر docker images لرؤية الصورة azure-vote-front التي قمت بإنشائها للتو.

docker images

نشر سجل حاويات Azure

قم بتشغيل الأمر az login أولاً لتسجيل الدخول إلى حساب Azure الخاص بك.

az login

بعد ذلك، استخدم الأمر az account لاختيار اشتراكك لإنشاء سجل Azure Container. يجب عليك إدخال معرف الاشتراك الخاص باشتراك Azure الخاص بك بدلاً من <subscription_id>.

az account set --subscription <subscription_id>

عند نشر Azure Container Registry، تحتاج أولاً إلى مجموعة موارد. مجموعة موارد Azure هي حاوية منطقية يتم بها نشر موارد Azure وإدارتها.

أنشئ مجموعة موارد باستخدام الأمر az group create. في هذا المثال، يتم إنشاء مجموعة موارد تسمى myResourceGroup في المنطقة westus.

az group create --name <myResourceGroup> --location westus

قم بإنشاء سجل Azure Container باستخدام الأمر az acr create. استبدل <acrName> باسم سجل الحاوية الذي تريد إنشاءه ضمن اشتراكك. يجب أن يكون هذا الاسم أبجدياً رقمياً وفريداً.

az acr create --resource-group <myResourceGroup> --name <acrName> --sku Basic --admin-enabled true

خلال بقية هذا البرنامج التعليمي، نستخدم "acrName" كعنصر نائب لاسم سجل الحاوية الذي اخترته. يرجى تدوين هذه القيمة.

قم بتسجيل الدخول إلى سجل الحاوية الخاص بك

قم بتسجيل الدخول إلى مثيل ACR الخاص بك قبل دفع الصور إليه. استخدم الأمر az acr login لإكمال العملية. أدخل الاسم الفريد الممنوح لسجل الحاوية عند إنشائه.

az acr login --name <acrName>

يقوم الأمر بإرجاع رسالة "Login Succeeded" بمجرد اكتماله.

ضع علامة على صور الحاوية

يجب وضع علامة على كل صورة حاوية باسم loginServer للسجل. يتم استخدام هذه العلامة للتوجيه عند دفع صور الحاوية إلى سجل الصور.

لمشاهدة قائمة بالصور الحالية، استخدم الأمر docker images.

docker images

المخرجات:

REPOSITORY                   TAG                 IMAGE ID            CREATED              SIZE
azure-vote-front             latest              052c549a75bf        About a minute ago   913MB

للحصول على اسم loginServer، قم بتشغيل الأمر التالي:

az acr show --name <acrName> --query loginServer --output table

يؤدي هذا إلى إخراج جدول بالنتائج التالية. سيتم استخدام هذه النتيجة لوضع علامة على الصورة azure-vote-front قبل دفعها إلى سجل الحاوية في الخطوة التالية.

Result
------------------
<acrName>.azurecr.io

الآن، ضع علامة على الصورة azure-vote-front باستخدام loginServer لسجل الحاوية الخاص بك. أضف :v1 أيضاً إلى نهاية اسم الصورة. تشير هذه العلامة إلى إصدار الصورة.

docker tag azure-vote-front <acrName>.azurecr.io/azure-vote-front:v1

بمجرد وضع علامة، قم بتشغيل "docker images" للتحقق من العملية.

المخرجات:

REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
azure-vote-front                       latest              052c549a75bf        23 minutes ago      913MB
<acrName>.azurecr.io/azure-vote-front  v1                  052c549a75bf        23 minutes ago      913MB

ادفع الصورة إلى السجل

ادفع الصورة azure-vote-front إلى السجل.

باستخدام المثال التالي، استبدال اسم loginServer لـ ACR بـ loginServer من البيئة الخاصة بك.

docker push <acrName>.azurecr.io/azure-vote-front:v1

تستغرق أوامر دفع docker بضع دقائق حتى تكتمل.

سرد الصور في السجل

لإرجاع قائمة من الصور التي تم دفعها إلى سجل Azure Container، استخدم الأمر az acr repository list. تحديث الأمر باسم مثيل ACR.

az acr repository list --name <acrName> --output table

المخرجات:

Result
----------------
azure-vote-front

عند اكتمال البرنامج التعليمي، يتم تخزين صورة الحاوية في مثيل Azure Container Registry خاص. يتم نشر هذه الصورة من ACR إلى نظام مجموعة Service Fabric في البرامج التعليمية اللاحقة.

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

في هذا البرنامج التعليمي، تم سحب تطبيق من GitHub وتم إنشاء صور حاوية ودفعها إلى السجل. اكتمال الخطوات التالية:

  • استنساخ مصدر التطبيق من GitHub
  • إنشاء صورة الحاوية من مصدر التطبيق
  • نشر مثيل Azure Container Registry (ACR)
  • وضع علامة على صورة حاوية لـ ACR
  • تحميل الصورة إلى ACR

تقدم إلى البرنامج التعليمي التالي للتعرف على حاويات التغليف في تطبيق Service Fabric باستخدام Yeoman.