البرنامج التعليمي: إنشاء صورة حاوية للنشر إلى مثيلات حاوية "Azure"
تمكين Azure Container Instances من نشر حاويات Docker على البنية التحتية لـ Azure دون توفير أي أجهزة ظاهرية أو اعتماد خدمات رفيعة المستوى. فيما يتعلق بالبرنامج التعليمي، يمكنك تعبئة حزمة صغيرة من تطبيق ويب الخاص بــ Node.js في صورة الحاوية التي يُمكن تشغيلها باستخدام Azure Container Instances.
يرد الجزء الأول من السلسلة في المقال الوارد، وبالتالي يُمكنك القيام بما يلي:
- استنساخ تطبيق كود المصدر من GitHub
- إنشاء صورة الحاوية من مصدر التطبيق
- اختبار الصورة في البيئة المحلية الخاصة بــ Docker
في الجزء الثاني والثالث من البرنامج التعليمي، يمكنك تحميل صورتك إلىAzure Container Registry، ومن ثم نشرها إلىAzure Container Instances.
قبل البدء
يجب أن تفي بالمتطلبات التالية لإكمال هذا البرنامج التعليمي:
Azure CLI: يجب أن يكون لديك الإصدار 2.0.29 من Azure CLI أو أحدث مثبتا على الكمبيوتر المحلي. للعثور على الإصدار، قم بتشغيل az --version
. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.
Docker: يفترض هذا البرنامج التعليمي فهما أساسيا لمفاهيم Docker الأساسية مثل الحاويات وصور الحاوية والأوامر الأساسية docker
. للحصول على تمهيد حول Docker وأساسيات الحاوية، راجع نظرة عامة على Docker.
Docker: لإكمال هذا البرنامج التعليمي، تحتاج إلى تثبيت Docker محليا. يوفر Docker حزما تقوم بتكوين بيئة Docker على macOS وWindows وLinux.
هام
نظرا لأن Azure Cloud shell لا يتضمن Docker daemon، يجب تثبيت كل من Azure CLI وDocker Engine على الكمبيوتر المحلي لإكمال هذا البرنامج التعليمي. لا يمكنك استخدام Azure Cloud Shell لهذا البرنامج التعليمي.
الحصول على التعليمة البرمجية للتطبيق
يُعد نموذج التطبيق المُدرج في البرنامج التعليمي هو التطبيق البسيط المُتاح على شبكة الإنترنت المُضمن في Node.js. يُقدم التطبيق صفحة HTML الثابتة، وتبدو مشابهة للقطة الشاشة التالية:
استخدام Git لنسخ نموذج مستودع التطبيق:
git clone https://github.com/Azure-Samples/aci-helloworld.git
يُمكنك أيضا تنزيل أرشيف ZIP من GitHub بشكل مباشر.
إنشاء صورة الحاوية
يوضح Dockerfile المذكور في نموذج التطبيق كيفية بناء الحاوية. يبدأ من صورة Node.js الرسمية بناءً على برنامج Alpine Linux، وهو توزيع صغير مناسب تماماً للاستخدام مع الحاويات. نسخ ملفات التطبيق في الحاوية، تثبيت التبعيات باستخدام مدير حزمة العقدة، وفي النهاية، يبدأ التطبيق.
FROM node:8.9.3-alpine
RUN mkdir -p /usr/src/app
COPY ./app/* /usr/src/app/
WORKDIR /usr/src/app
RUN npm install
CMD node /usr/src/app/index.js
استخدام أمر بناء docker لإنشاء صورة الحاوية والعلامة على أنها aci-تطبيق البرنامج التعليمي:
docker build ./aci-helloworld -t aci-tutorial-app
يُعد الناتج من أمر بناء docker مشابهاً لما يلي (مُختصرة لتسهيل قراءتها):
docker build ./aci-helloworld -t aci-tutorial-app
Sending build context to Docker daemon 119.3kB
Step 1/6 : FROM node:8.9.3-alpine
8.9.3-alpine: Pulling from library/node
88286f41530e: Pull complete
84f3a4bf8410: Pull complete
d0d9b2214720: Pull complete
Digest: sha256:c73277ccc763752b42bb2400d1aaecb4e3d32e3a9dbedd0e49885c71bea07354
Status: Downloaded newer image for node:8.9.3-alpine
---> 90f5ee24bee2
...
Step 6/6 : CMD node /usr/src/app/index.js
---> Running in f4a1ea099eec
---> 6edad76d09e9
Removing intermediate container f4a1ea099eec
Successfully built 6edad76d09e9
Successfully tagged aci-tutorial-app:latest
استخدم الأمر الخاص بصور docker لرؤية الصورة المُضمنة:
docker images
يجب أن تظهر صورتك المبنية حديثاً في القائمة:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 seconds ago 68.1 MB
تشغيل الحاوية على الصعيد المحلي
قبل نشر الحاوية إلىAzure Container Instances استخدام docker run لتشغيلها محلياً ثم التأكد من أنها تعمل بشكل فعَّال. يُتيح -d
التبديل تشغيل الحاوية في الخلفية، بينما يُسمح لك بتحديد منفذ إجباري على حاسوبك وصولاً إلى المنفذ -p
80 في الحاوية.
docker run -d -p 8080:80 aci-tutorial-app
يعرض الناتج من الأمر docker run
مُعرف الحاوية قيد التشغيل إذا كان الأمر ناجحًا:
docker run -d -p 8080:80 aci-tutorial-app
```output
a2e3e4435db58ab0c664ce521854c2e1a1bda88c9cf2fcff46aedf48df86cccf
الآن، انتقل إلى http://localhost:8080
متصفحك للتأكد من أن الحاوية قيد التشغيل. يجب أن تشاهد صفحة ويب مشابهة للقطة الشاشة التالية:
الخطوات التالية
في البرنامج التعليمي، إنشاء صورة الحاوية التي يمكن نشرها فيAzure Container Instances، والتحقق من تشغيلها محلياً. حتى الآن، أكملت الخطوات التالية:
- نسخ مصدر التطبيق من GitHub
- إنشاء صورة الحاوية من مصدر التطبيق
- اختبار الحاوية محلياً
تقدم إلى البرنامج التعليمي التالي في السلسلة لمعرفة المزيد عن تخزين صورة الحاوية في Azure Container Registry: