你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用命令行部署现有容器映像
借助 Azure 容器应用服务,可以在无服务器平台上运行微服务和容器化应用程序。 使用容器应用,你可以享受运行容器的好处,同时无需手动配置云基础结构和复杂容器业务流程协调程序。
本文演示如何将现有容器部署到 Azure 容器应用。
注意
通过注册表用户名和密码支持专用注册表授权。
先决条件
- 具有活动订阅的 Azure 帐户。
- 如果没有帐户,可以免费创建一个帐户。
- 安装 Azure CLI。
- 访问公共或专用容器注册表,例如 Azure 容器注册表。
安装
若要从 CLI 登录到 Azure,请运行以下命令,然后按照提示完成身份验证过程。
az login
为了确保你运行的是最新版本的 CLI,请运行升级命令。
az upgrade
接下来,安装或更新适用于 CLI 的 Azure 容器应用扩展。
az extension add --name containerapp --upgrade
现在已安装当前扩展或模块,接下来请注册 Microsoft.App
和 Microsoft.OperationalInsights
命名空间。
注意
Azure 容器应用资源已从 Microsoft.Web
命名空间迁移到 Microsoft.App
命名空间。 有关详细信息,请参阅 2022 年 3 月从 Microsoft.Web 到 Microsoft.App 的命名空间迁移。
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
设置环境变量。
设置以下环境变量。 将 <占位符> 替换为自己的值:
RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"
创建 Azure 资源组
创建一个资源组来组织与你的容器应用部署相关的服务。
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
创建环境
Azure 容器应用中的环境围绕一组容器应用创建安全边界。 部署到相同环境的容器应用部署在同一虚拟网络中,并将日志写入同一个 Log Analytics 工作区。
若要创建环境,请运行以下命令:
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION"
创建容器应用
创建环境后,可以部署第一个容器应用。 使用 containerapp create
命令,将容器映像部署到 Azure 容器应用。
本文中显示的示例演示如何通过常用命令使用自定义容器映像。 你的容器映像可能需要以下项目的更多参数:
- 设置修订模式
- 定义机密
- 定义环境变量
- 设置容器 CPU 或内存要求
- 启用和配置 Dapr
- 启用外部或内部入口
- 提供最小和最大副本值或缩放规则
若要详细了解如何为 create
命令提供这些参数的值,请运行 az containerapp create --help
或查看在线参考。 若要为 Azure 容器注册表生成凭据,请使用 az acr credential show 命令。
CONTAINER_IMAGE_NAME=<CONTAINER_IMAGE_NAME>
REGISTRY_SERVER=<REGISTRY_SERVER>
REGISTRY_USERNAME=<REGISTRY_USERNAME>
REGISTRY_PASSWORD=<REGISTRY_PASSWORD>
(将<占位符>替换成自己的值。)
az containerapp create \
--name my-container-app \
--resource-group $RESOURCE_GROUP \
--image $CONTAINER_IMAGE_NAME \
--environment $CONTAINERAPPS_ENVIRONMENT \
--registry-server $REGISTRY_SERVER \
--registry-username $REGISTRY_USERNAME \
--registry-password $REGISTRY_PASSWORD
az containerapp create \
--image <REGISTRY_CONTAINER_NAME> \
--name my-container-app \
--resource-group $RESOURCE_GROUP \
--environment $CONTAINERAPPS_ENVIRONMENT
If you have enabled ingress on your container app, you can add `--query properties.configuration.ingress.fqdn` to the `create` command to return the public URL for the application.
在运行此命令之前,请将 <REGISTRY_CONTAINER_NAME>
替换为公共容器注册表位置的全名,包括注册表路径和标记。 例如,有效的容器名称为 mcr.microsoft.com/k8se/quickstart:latest
。
验证部署
若要验证部署是否成功,可以查询 Log Analytics 工作区。 在部署后,分析结果第一次到达可能需要等待几分钟,然后你才能查询日志。 这取决于容器应用中实现的控制台日志记录。
使用以下命令查看控制台日志消息。
LOG_ANALYTICS_WORKSPACE_CLIENT_ID=`az containerapp env show --name $CONTAINERAPPS_ENVIRONMENT --resource-group $RESOURCE_GROUP --query properties.appLogsConfiguration.logAnalyticsConfiguration.customerId --out tsv`
az monitor log-analytics query \
--workspace $LOG_ANALYTICS_WORKSPACE_CLIENT_ID \
--analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'my-container-app' | project ContainerAppName_s, Log_s, TimeGenerated" \
--out table
清理资源
如果你不打算继续使用此应用程序,请运行以下命令以删除资源组以及本快速入门中创建的所有资源。
注意
以下命令删除指定的资源组及其包含的所有资源。 如果指定的资源组中存在本快速入门范围外的资源,这些资源也会被删除。
az group delete --name $RESOURCE_GROUP
提示
遇到问题? 在 Azure 容器应用存储库中提交问题,告知我们有关 GitHub 的信息。