你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Docker Compose 配置创建多容器(预览版)应用

注意

挎斗容器(预览版)将在应用服务中成功使用多容器应用。 若要开始使用,请参阅教程:在 Azure 应用服务中为自定义容器配置挎斗容器(预览版)

用于容器的 Web 应用中可以灵活使用 Docker 映像。 本快速入门介绍如何在 Cloud Shell 中使用 Docker Compose 配置将多容器应用(预览)部署到用于容器的 Web 应用。

用于容器的 Web 应用中的示例多容器应用

如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户

先决条件

本文需要 Azure CLI 版本 2.0.32 或更高版本。 如果使用 Azure Cloud Shell,则最新版本已安装。

下载示例

本快速入门使用 Docker 中的 compose 文件。 可在 Azure 示例中找到该配置文件。

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 中,创建一个 quickstart 目录,然后切换到该目录。

mkdir quickstart

cd $HOME/quickstart

接下来请运行以下命令,将示例应用存储库克隆到快速入门目录。 然后切换到 multicontainerwordpress 目录。

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

cd multicontainerwordpress

创建资源组

资源组是在其中部署和管理 Azure 资源(例如 Web 应用、数据库和存储帐户)的逻辑容器。 例如,可以选择在使用完之后通过一个简单的步骤删除整个资源组。

在 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 命令在资源组中创建应用服务计划。

以下示例在标准定价层 (--sku S1) 和 Linux 容器 (--is-linux) 中创建名为 myAppServicePlan 的应用服务计划。

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

创建应用服务计划后,Azure CLI 会显示类似于以下示例的信息:

{
  "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 Compose 应用

注意

目前,Azure 应用服务上的 Docker Compose 在转换为 Base64 时有 4,000 个字符的限制。

在 Cloud Shell 终端中,使用 az webapp create 命令在 myAppServicePlan 应用服务计划中创建一个多容器 Web 应用。 不要忘记将 <app_name> 替换为唯一的应用名称(有效字符是 a-z0-9-)。

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

创建 Web 应用后,Azure CLI 会显示类似于以下示例的输出:

{
  "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)。 该应用可能需要几分钟时间才能完成加载。 如果收到错误,请在几分钟后刷新浏览器。

用于容器的 Web 应用中的示例多容器应用

祝贺你,现已在用于容器的 Web 应用中创建了多容器应用。

清理部署

运行示例脚本后,可以使用以下命令删除资源组以及与其关联的所有资源。

az group delete --name myResourceGroup

后续步骤