البرنامج التعليمي: أنشئ تطبيقًا متعدد الحاويات (معاينة) في تطبيق الويب للحاويات

إشعار

ستنجح حاويات Sidecar (معاينة) في تطبيقات متعددة الحاويات في App Service. للبدء، راجع البرنامج التعليمي: تكوين حاوية sidecar للحاوية المخصصة في Azure App Service (معاينة).

يوفر تطبيق الويب للحاوياتطريقة مرنة لاستخدام صور Docker. في هذا البرنامج التعليمي، سوف تتعلم كيفية إنشاء تطبيق متعدد الحاويات باستخدام WordPress وMySQL. سوف تكمل البرنامج التعليمي هذا في Cloud Shell، ولكن يمكنك أيضًا تشغيل هذه الأوامر محليًّا باستخدام أداة سطر أوامر Azure CLI (2.0.32 أو أحدث).

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

  • تحويل تكوين Docker Compose للعمل مع تطبيق ويب للحاويات
  • نشر تطبيق متعدد الحاويات على Azure
  • إضافة إعدادات التطبيق
  • استخدام التخزين المستمر للحاويات الخاصة بك
  • الاتصال بـ Azure Database for MySQL
  • استكشاف الأخطاء وإصلاحها

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

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

لإكمال هذا البرنامج التعليمي، تحتاج إلى خبرة في Docker Compose.

تنزيل العينة

في هذا البرنامج التعليمي، يمكنك استخدام ملف الإنشاء من Docker، ولكنك ستقوم بتعديله ليشمل Azure Database for MySQL، والتخزين الدائم، وRedis. يمكن العثور على ملف التكوين في عينات Azure. في النموذج أدناه، لاحظ أنه depends_on خيار غير مدعوم ويتم تجاهله. للحصول على خيارات التكوين المعتمدة، راجع خيارات إنشاء Docker .

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

في Cloud Shell، أنشئ دليلاً تعليميًّا ثم انتقل إليه.

mkdir tutorial

cd tutorial

بعد ذلك، قم بتشغيل الأمر التالي لاستنساخ نموذج مستودع التطبيق إلى دليل البرنامج التعليمي الخاص بك. ثم غيّر إلى multicontainerwordpress الدليل.

git clone https://github.com/Azure-Samples/multicontainerwordpress

cd multicontainerwordpress

إنشاء مجموعة موارد

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

في Cloud Shell أنشئ مجموعة موارد باستخدامaz group create الأمر. ينشئ المثال التالي مجموعة موارد تسمى myResourceGroup في منطقة جنوب وسط الولايات المتحدة. لمشاهدة جميع المواقع المدعومة لخدمة التطبيقات على Linux في المستوى القياسي، قم بتشغيلaz appservice list-locations --sku S1 --linux-workers-enabled الأمر.

az group create --name myResourceGroup --location "South Central US"

يمكنك بشكل عام إنشاء مجموعة مواردك والموارد في منطقة قريبة منك.

عند انتهاء الأمر، يظهر لك إخراج JSON خصائص مجموعة الموارد.

إنشاء خطة خدمة تطبيق Azure

في Cloud Shell، أنشئ خطة خدمة التطبيق في مجموعة الموارد باستخدام الأمر az appservice plan create.

ينشئ المثال التالي خطة خدمة التطبيق المسماة myAppServicePlan في مستويات التسعير القياسي(--sku S1) وفي حاوية Linux (--is-linux).

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku S1 --is-linux

عند إنشاء خطة خدمة التطبيق، تعرض Cloud Shell معلومات مشابهة للمثال التالي:

{
  "adminSiteName": null,
  "appServicePlanName": "myAppServicePlan",
  "geoRegion": "South Central US",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "linux",
  "location": "South Central US",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
}

يؤلف Docker مع WordPress وحاويات MySQL

إنشاء تطبيق Docker Compose

في Cloud Shell، إنشاء تطبيق ويب متعدد الحاويات في myAppServicePlan خطة خدمات التطبيق باستخدام الأمر إنشاء تطبيق ويبaz. لا تنسَ استبدال<اسم التطبيق>باسم تطبيق فريد.

az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --multicontainer-config-type compose --multicontainer-config-file docker-compose-wordpress.yml

عند إنشاء تطبيق الويب، تعرض Cloud Shell مخرجات مشابهة للمثال التالي:

{
  "additionalProperties": {},
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "<app-name>.azurewebsites.net",
  "enabled": true,
  < JSON data removed for brevity. >
}

استعرض التطبيق

استعراض للوصول إلى التطبيق المنشور على (http://<app-name>.azurewebsites.net). قد يستغرق تحميل التطبيق بضع دقائق. إذا تلقيت خطأ، فانتظر بضع دقائق إضافية ثم قم بتحديث المستعرض. إذا كنت تواجه مشكلة وترغب في استكشاف الأخطاء وإصلاحها، فراجع سجلات الحاوية.

عينة التطبيق متعدد الحاويات على تطبيق ويب للحاويات

تهانينا، لقد أنشأت تطبيقاً متعدد الحاويات في تطبيق الويب للحاويات. بعد ذلك، ستقوم بتكوين التطبيق الخاص بك لاستخدام Azure Database for MySQL. لا تقم بتثبيت WordPress في هذا الوقت.

الاتصال بقاعدة بيانات الإنتاج

لا يُنصح باستخدام حاويات قاعدة البيانات في بيئة إنتاج. الحاويات المحلية غير قابلة للتحجيم. بدلاً من ذلك، ستستخدم Azure Database for MySQL التي يمكن تحجيمها.

إنشاء خادم Azure Database for MySQL

إنشاء قاعدة بيانات Azure لخادم MySQL باستخدام az mysql server create الأمر.

في الأمر التالي، استبدل اسم خادم MySQL حيث ترى <mysql-server-name> >بعنصر نائب (الأحرف الصالحة هي، a-zو0-9و-). هذا الاسم جزء من اسم مضيف خادم MySQL (<mysql-server-name>.database.windows.net)، يجب أن يكون فريدًا بصورة عامة.

az mysql server create --resource-group myResourceGroup --name <mysql-server-name>  --location "South Central US" --admin-user adminuser --admin-password My5up3rStr0ngPaSw0rd! --sku-name B_Gen5_1 --version 5.7

قد يستغرق إنشاء الخادم بضع دقائق حتى يكتمل. عند إنشاء خادم MySQL، تعرض Cloud Shell معلومات مشابهة للمثال التالي:

{
  "administratorLogin": "adminuser",
  "administratorLoginPassword": null,
  "fullyQualifiedDomainName": "<mysql-server-name>.database.windows.net",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DBforMySQL/servers/<mysql-server-name>",
  "location": "southcentralus",
  "name": "<mysql-server-name>",
  "resourceGroup": "myResourceGroup",
  ...
}

تكوين جدار حماية الخادم

في Cloud Shell، أنشئ قاعدة جدار حماية لخادم MySQL لإتاحة اتصالات العميل باستخدام الأمر az mysql server firewall-rule create. عند تعيين كل من IP بدء تشغيل وIP النهاية إلى 0.0.0.0، يتم فتح جدار الحماية فقط لموارد Azure الأخرى.

az mysql server firewall-rule create --name allAzureIPs --server <mysql-server-name> --resource-group myResourceGroup --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0

تلميح

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

إنشاء قاعدة بيانات WordPress

az mysql db create --resource-group myResourceGroup --server-name <mysql-server-name> --name wordpress

عند إنشاء قاعدة البيانات، تعرض Cloud Shell معلومات مشابهة للمثال التالي:

{
  "additionalProperties": {},
  "charset": "latin1",
  "collation": "latin1_swedish_ci",
  "id": "/subscriptions/12db1644-4b12-4cab-ba54-8ba2f2822c1f/resourceGroups/myResourceGroup/providers/Microsoft.DBforMySQL/servers/<mysql-server-name>/databases/wordpress",
  "name": "wordpress",
  "resourceGroup": "myResourceGroup",
  "type": "Microsoft.DBforMySQL/servers/databases"
}

تكوين متغيرات قاعدة البيانات في WordPress

لتوصيل تطبيق WordPress بخادم MySQL الجديد هذا، ستقوم بتكوين بعض متغيرات البيئة الخاصة بـ WordPress، بما في ذلك مسار SSL CA المحدد بواسطةMYSQL_SSL_CA. يتم توفير جذر بالتيمور CyberTrust من DigiCert في الصورة المخصصة أدناه.

لإجراء هذه التغييرات، استخدم الأمر az webapp config appsettings set في Cloud Shell. إعدادات التطبيق حساسة لحالة الأحرف ومفصولة بمسافة.

az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings WORDPRESS_DB_HOST="<mysql-server-name>.mysql.database.azure.com" WORDPRESS_DB_USER="adminuser" WORDPRESS_DB_PASSWORD="My5up3rStr0ngPaSw0rd!" WORDPRESS_DB_NAME="wordpress" MYSQL_SSL_CA="BaltimoreCyberTrustroot.crt.pem"

عند إنشاء إعداد التطبيق، تعرض Cloud Shell معلومات مشابهة للمثال التالي:

[
  {
    "name": "WORDPRESS_DB_HOST",
    "slotSetting": false,
    "value": "<mysql-server-name>.mysql.database.azure.com"
  },
  {
    "name": "WORDPRESS_DB_USER",
    "slotSetting": false,
    "value": "adminuser"
  },
  {
    "name": "WORDPRESS_DB_NAME",
    "slotSetting": false,
    "value": "wordpress"
  },
  {
    "name": "WORDPRESS_DB_PASSWORD",
    "slotSetting": false,
    "value": "My5up3rStr0ngPaSw0rd!"
  },
  {
    "name": "MYSQL_SSL_CA",
    "slotSetting": false,
    "value": "BaltimoreCyberTrustroot.crt.pem"
  }
]

لمزيد من المعلومات حول متغيرات البيئة، راجع تكوين متغيرات البيئة.

استخدام صورة مخصصة لـ MySQL TLS/SSL وتكوينات أخرى

بشكل افتراضي، TLS/SSL يُستخدم بواسطة قاعدة بيانات Azure لـ MySQL. يتطلب WordPress تكوينًا إضافيًّا لاستخدام TLS/SSL مع MySQL. لا توفر الصورة الرسمية لـ WordPress التكوين الإضافي، لكن تم إعداد صورة مخصصة لراحتك. في الممارسة العملية، يمكنك إضافة التغييرات المطلوبة إلى صورتك الخاصة.

تعتمد الصورة المخصصة على «الصورة الرسمية» لـ WordPress من Docker Hub. تم إجراء التغييرات التالية في هذه الصورة المخصصة لقاعدة بيانات Azure ل MySQL:

تم إجراء التغييرات التالية لـ Redis (لاستخدامها في مقطع لاحق):

لاستخدام الصورة المخصصة، ستقوم بتحديث ملف docker-compose-wordpress.yml. في Cloud Shell، افتح محرر نص وغير image: wordpress لاستخدام image: mcr.microsoft.com/azuredocs/multicontainerwordpress. لم تَعُد بحاجة إلى حاوية قاعدة البيانات. قم بإزالة db،environmentوdepends_on وvolumesالمقطع من ملف التكوين. يجب أن يبدو ملفك مثل التعليمة البرمجية التالية:

version: '3.3'

services:
   wordpress:
     image: mcr.microsoft.com/azuredocs/multicontainerwordpress
     ports:
       - "8000:80"
     restart: always

تحديث التطبيق بتكوين جديد

في Cloud Shell، أعد تكوين تطبيق الويب متعدد الحاويات باستخدام أمر تعيين حاوية التكوين az webapp. لا تنسَ استبدال <اسم التطبيق>باسم تطبيق الويب الذي أنشأته سابقًا.

az webapp config container set --resource-group myResourceGroup --name <app-name> --multicontainer-config-type compose --multicontainer-config-file docker-compose-wordpress.yml

عند إعادة تكوين التطبيق، تعرض Cloud Shell معلومات مشابهة للمثال التالي:

[
  {
    "name": "DOCKER_CUSTOM_IMAGE_NAME",
    "value": "COMPOSE|dmVyc2lvbjogJzMuMycKCnNlcnZpY2VzOgogICB3b3JkcHJlc3M6CiAgICAgaW1hZ2U6IG1zYW5nYXB1L3dvcmRwcmVzcwogICAgIHBvcnRzOgogICAgICAgLSAiODAwMDo4MCIKICAgICByZXN0YXJ0OiBhbHdheXM="
  }
]

استعرض التطبيق

استعراض للوصول إلى التطبيق المنشور على (http://<app-name>.azurewebsites.net). يستخدم التطبيق الآن قاعدة بيانات Azure لـ MySQL.

نموذج التطبيق متعدد الحاويات على تطبيق ويب للحاويات

إضافة تخزين دائم

يتم الآن تشغيل الحاويات المتعددة في تطبيق ويب للحاويات. ومع ذلك، إذا قمت بتثبيت WordPress الآن وأعدتَ تشغيل التطبيق لاحقًا، فستجد أن تثبيت WordPress قد انتهى. يحدث هذا لأن تكوين Docker Compose يشير حاليًّا إلى موقع تخزين داخل الحاوية. لا تستمر الملفات المثبتة في الحاوية بعد إعادة تشغيل التطبيق. في هذا المقطع، ستضيف تخزينًا دائمًا لحاوية WordPress الخاصة بك.

تكوين متغيرات البيئة

لاستخدام التخزين المستمر، ستقوم بتمكين هذا الإعداد داخل خدمة التطبيقات. لإجراء هذه التغييرات، استخدم الأمر az webapp config appsettings set في Cloud Shell. إعدادات التطبيق حساسة لحالة الأحرف ومفصولة بمسافة.

az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings WEBSITES_ENABLE_APP_SERVICE_STORAGE=TRUE

عند إنشاء إعداد التطبيق، تعرض Cloud Shell معلومات مشابهة للمثال التالي:

[
  < JSON data removed for brevity. >
  {
    "name": "WORDPRESS_DB_NAME",
    "slotSetting": false,
    "value": "wordpress"
  },
  {
    "name": "WEBSITES_ENABLE_APP_SERVICE_STORAGE",
    "slotSetting": false,
    "value": "TRUE"
  }
]

تعديل ملف التكوين

في Cloud Shell، افتح الملف docker-compose-wordpress.yml في محرر نص.

يقوم volumesالخيار بتعيين نظام الملفات إلى دليل داخل الحاوية. ${WEBAPP_STORAGE_HOME}هو متغير بيئة في خدمة التطبيق تم تعيينه للتخزين الدائم لتطبيقك. ستستخدم متغير البيئة هذا في خيار وحدات التخزين بحيث يتم تثبيت ملفات WordPress في التخزين المستمر بدلاً من الحاوية. إجراء التعديلات التالية على الملف:

في wordpress المقطع، أضف volumes خيارًا ليبدو مثل التعليمة البرمجية التالية:

version: '3.3'

services:
   wordpress:
     image: mcr.microsoft.com/azuredocs/multicontainerwordpress
     volumes:
      - ${WEBAPP_STORAGE_HOME}/site/wwwroot:/var/www/html
     ports:
       - "8000:80"
     restart: always

تحديث التطبيق بتكوين جديد

في Cloud Shell، أعد تكوين تطبيق الويب متعدد الحاويات باستخدام أمر تعيين حاوية التكوين az webapp. لا تنسَ استبدال<اسم التطبيق>باسم تطبيق فريد.

az webapp config container set --resource-group myResourceGroup --name <app-name> --multicontainer-config-type compose --multicontainer-config-file docker-compose-wordpress.yml

بعد تشغيل الأمر الخاص بك، فإنه يظهر الإخراج المشابه للمثال التالي:

[
  {
    "name": "WEBSITES_ENABLE_APP_SERVICE_STORAGE",
    "slotSetting": false,
    "value": "TRUE"
  },
  {
    "name": "DOCKER_CUSTOM_IMAGE_NAME",
    "value": "COMPOSE|dmVyc2lvbjogJzMuMycKCnNlcnZpY2VzOgogICBteXNxbDoKICAgICBpbWFnZTogbXlzcWw6NS43CiAgICAgdm9sdW1lczoKICAgICAgIC0gZGJfZGF0YTovdmFyL2xpYi9teXNxbAogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgTVlTUUxfUk9PVF9QQVNTV09SRDogZXhhbXBsZXBhc3MKCiAgIHdvcmRwcmVzczoKICAgICBkZXBlbmRzX29uOgogICAgICAgLSBteXNxbAogICAgIGltYWdlOiB3b3JkcHJlc3M6bGF0ZXN0CiAgICAgcG9ydHM6CiAgICAgICAtICI4MDAwOjgwIgogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgV09SRFBSRVNTX0RCX1BBU1NXT1JEOiBleGFtcGxlcGFzcwp2b2x1bWVzOgogICAgZGJfZGF0YTo="
  }
]

استعرض التطبيق

استعراض للوصول إلى التطبيق المنشور على (http://<app-name>.azurewebsites.net).

تستخدم حاوية WordPress الآن قاعدة بيانات Azure لـ MySQL والتخزين المستمر.

إضافة حاوية Redis

لا تتضمن "الصورة الرسمية" لـ WordPress تبعيات Redis. تم إعداد هذه التبعيات والتكوين الإضافي اللازم لاستخدام Redis مع WordPress من أجلك في هذه الصورة المخصصة. في الممارسة العملية، يمكنك إضافة التغييرات المطلوبة إلى صورتك الخاصة.

تعتمد الصورة المخصصة على «الصورة الرسمية» لـ WordPress من Docker Hub. تم إجراء التغييرات التالية في هذه الصورة المخصصة لـ Redis:

إضافة حاوية redis إلى الجزء السفلي من ملف التكوين بحيث يبدو مثل المثال التالي:

version: '3.3'

services:
   wordpress:
     image: mcr.microsoft.com/azuredocs/multicontainerwordpress
     ports:
       - "8000:80"
     restart: always

   redis:
     image: mcr.microsoft.com/oss/bitnami/redis:6.0.8
     environment:
      - ALLOW_EMPTY_PASSWORD=yes
     restart: always

تكوين متغيرات البيئة

لاستخدام Redis، ستقوم بتمكين هذا الإعدادWP_REDIS_HOST داخل خدمة التطبيق. هذا إعداد مطلوب لـ WordPress للتواصل مع مضيف Redis. لإجراء هذه التغييرات، استخدم الأمر az webapp config appsettings set في Cloud Shell. إعدادات التطبيق حساسة لحالة الأحرف ومفصولة بمسافة.

az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings WP_REDIS_HOST="redis"

عند إنشاء إعداد التطبيق، تعرض Cloud Shell معلومات مشابهة للمثال التالي:

[
  < JSON data removed for brevity. >
  {
    "name": "WORDPRESS_DB_USER",
    "slotSetting": false,
    "value": "adminuser"
  },
  {
    "name": "WP_REDIS_HOST",
    "slotSetting": false,
    "value": "redis"
  }
]

تحديث التطبيق بتكوين جديد

في Cloud Shell، أعد تكوين تطبيق الويب متعدد الحاويات باستخدام أمر تعيين حاوية التكوين az webapp. لا تنسَ استبدال<اسم التطبيق>باسم تطبيق فريد.

az webapp config container set --resource-group myResourceGroup --name <app-name> --multicontainer-config-type compose --multicontainer-config-file compose-wordpress.yml

بعد تشغيل الأمر الخاص بك، فإنه يظهر الإخراج المشابه للمثال التالي:

[
  {
    "name": "DOCKER_CUSTOM_IMAGE_NAME",
    "value": "COMPOSE|dmVyc2lvbjogJzMuMycKCnNlcnZpY2VzOgogICBteXNxbDoKICAgICBpbWFnZTogbXlzcWw6NS43CiAgICAgdm9sdW1lczoKICAgICAgIC0gZGJfZGF0YTovdmFyL2xpYi9teXNxbAogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgTVlTUUxfUk9PVF9QQVNTV09SRDogZXhhbXBsZXBhc3MKCiAgIHdvcmRwcmVzczoKICAgICBkZXBlbmRzX29uOgogICAgICAgLSBteXNxbAogICAgIGltYWdlOiB3b3JkcHJlc3M6bGF0ZXN0CiAgICAgcG9ydHM6CiAgICAgICAtICI4MDAwOjgwIgogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgV09SRFBSRVNTX0RCX1BBU1NXT1JEOiBleGFtcGxlcGFzcwp2b2x1bWVzOgogICAgZGJfZGF0YTo="
  }
]

استعرض التطبيق

استعراض للوصول إلى التطبيق المنشور على (http://<app-name>.azurewebsites.net).

إكمال الخطوات وتثبيت WordPress.

اتصال WordPress بـ Redis

سجّل الدخول إلى مدير WordPress. في شريط التنقل الأيمن، حدد المكونات الإضافية، ثم حدد المكونات الإضافية المثبتة.

حدد مكونات WordPress الإضافية

إظهار جميع المكونات الإضافية هنا

في صفحة المكونات الإضافية، ابحث عن Redis Object Cache وانقر على تنشيط.

تنشيط Redis

انقر فوق «إعدادات».

انقر فوق الإعدادات

انقر فوق الزر تمكين ذاكرة التخزين المؤقت للكائنات.

انقر فوق الزر

يتصل WordPress بخادم Redis. تظهر حالة الاتصال على نفس الصفحة.

تتصل WordPress بخادم Redis. وتظهر حالة الاتصال على نفس الصفحة.

تهانينا، لقد ربطت WordPress بـ Redis. يستخدم التطبيق الجاهز للإنتاج الآن Azure Database لـ MySQL والتخزين الدائم وRedis. يمكنك الآن توسيع نطاق خطة خدمة التطبيقات إلى مثيلات متعددة.

البحث عن سجلات حاوية Docker

إذا واجهت مشكلات في استخدام حاويات متعددة، فيمكنك الوصول إلى سجلات الحاوية عن طريق الاستعراض إلى:https://<app-name>.scm.azurewebsites.net/api/logs/docker.

يتشابه الإخراج مع المثال التالي:

[
   {
      "machineName":"RD00XYZYZE567A",
      "lastUpdated":"2018-05-10T04:11:45Z",
      "size":25125,
      "href":"https://<app-name>.scm.azurewebsites.net/api/vfs/LogFiles/2018_05_10_RD00XYZYZE567A_docker.log",
      "path":"/home/LogFiles/2018_05_10_RD00XYZYZE567A_docker.log"
   }
]

تشاهد سجلاً لكل حاوية وسجلاً إضافيًّا للعملية الأصل. انسخ القيمة المعنيةhref في المستعرض لعرض السجل.

تنظيف النشر

بعد تشغيل نموذج البرنامج النصي، يمكن استخدام الأمر التالي لإزالة مجموعة الموارد وكافة الموارد المقترنة بها.

az group delete --name myResourceGroup

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

في هذا البرنامج التعليمي، نتعلم طريقة القيام بما يأتي:

  • تحويل تكوين Docker Compose للعمل مع تطبيق ويب للحاويات
  • نشر تطبيق متعدد الحاويات على Azure
  • إضافة إعدادات التطبيق
  • استخدام التخزين المستمر للحاويات الخاصة بك
  • الاتصال بـ Azure Database for MySQL
  • استكشاف الأخطاء وإصلاحها

تقدم إلى البرنامج التعليمي التالي لمعرفة كيفية تأمين تطبيقك باستخدام مجال وشهادة مخصصين.

أو، يمكنك التحقق من الموارد الأخرى: