你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Docker Compose 配置创建多容器(预览版)应用
注意
挎斗容器(预览版)将在应用服务中成功使用多容器应用。 若要开始使用,请参阅教程:在 Azure 应用服务中为自定义容器配置挎斗容器(预览版)。
在用于容器的 Web 应用中可以灵活使用 Docker 映像。 本快速入门介绍如何在 Cloud Shell 中使用 Docker Compose 配置将多容器应用(预览)部署到用于容器的 Web 应用。
如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户。
先决条件
在 Azure Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 中的 Bash 快速入门。
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
本文需要 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-z
、0-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 应用中创建了多容器应用。
清理部署
运行示例脚本后,可以使用以下命令删除资源组以及与其关联的所有资源。
az group delete --name myResourceGroup