教程:部署和使用 Azure 容器注册表

Azure 容器注册表 (ACR) 是容器映像的专用注册表。 可以通过专用容器注册表安全地生成和部署应用程序和自定义代码。 本教程的第 2 部分(共 7 部分)介绍如何部署 ACR 实例并向其推送容器映像。 将了解如何执行以下操作:

  • 创建 Azure 容器注册表 (ACR) 实例
  • 标记 ACR 的容器映像
  • 向 ACR 上传映像
  • 查看注册表中的映像

在后面的教程中,此 ACR 实例将与 Azure Stack HCI 和 Windows Server 上的 Azure Kubernetes 服务 (AKS) 中的 Kubernetes 群集集成,而应用程序则通过映像进行部署。

开始之前

上一教程介绍了如何为简单的 Azure 投票应用程序创建容器映像。 如果尚未创建 Azure Voting 应用映像,请返回到教程 1:创建容器映像

此教程需要运行 Azure CLI 2.0.53 版或更高版本。 运行 az --version 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI

创建 Azure 容器注册表

若要创建 Azure 容器注册表,首先需要一个资源组。 Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。

使用“az group create”命令创建资源组。 以下示例在 eastus 区域创建名为 myResourceGroup 的资源组:

az group create --name myResourceGroup --location eastus

使用 az acr create 命令创建 Azure 容器注册表实例,并提供你自己的注册表名称。 注册表名称在 Azure 中必须唯一,并且包含 5-50 个字母数字字符。 在本教程的剩余部分,请使用 <acrName> 作为容器注册表名称的占位符。 提供自己的唯一注册表名称。 “基本”SKU 是一个针对成本优化的入口点,适用于可以对存储和吞吐量进行均衡考虑的开发目的。

az acr create --resource-group myResourceGroup --name <acrName> --sku Basic

登录到容器注册表

若要使用 ACR 实例,必须先登录。 使用 az acr login 命令并提供一个唯一名称,该名称是在上一步提供给容器注册表的。

az acr login --name <acrName>

完成后,该命令会返回“登录成功”消息。

标记容器映像

若要查看当前的本地映像的列表,请使用 docker images 命令:

docker images

上述命令输出显示当前本地图像的列表:

REPOSITORY                                     TAG                 IMAGE ID            CREATED             SIZE
mcr.microsoft.com/azuredocs/azure-vote-front   v1                  84b41c268ad9        7 minutes ago       944MB
mcr.microsoft.com/oss/bitnami/redis            6.0.8               3a54a920bb6c        2 days ago          103MB
tiangolo/uwsgi-nginx-flask                     python3.6           a16ce562e863        6 weeks ago         944MB

若要将 azure-vote-front 容器映像与 ACR 配合使用,请确保使用注册表的登录服务器地址对映像进行标记。 在将容器映像推送到映像注册表时,使用此标记进行路由。

若要获取登录服务器地址,请使用 az acr list 命令并查询是否存在 loginServer,如下所示:

az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table

现在,请使用容器注册表的 acrLoginServer 地址标记本地 azure-vote-front 映像。 若要指示映像版本,请将 :v1 添加到映像名称的末尾:

docker tag mcr.microsoft.com/azuredocs/azure-vote-front:v1 <acrLoginServer>/azure-vote-front:v1

若要验证是否已应用标记,请再次运行 docker images

docker images

系统会使用 ACR 实例地址和版本号对映像进行标记。

REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
mcr.microsoft.com/azuredocs/azure-vote-front    v1                  84b41c268ad9        16 minutes ago      944MB
mycontainerregistry.azurecr.io/azure-vote-front v1                  84b41c268ad9        16 minutes ago      944MB
mcr.microsoft.com/oss/bitnami/redis             6.0.8               3a54a920bb6c        2 days ago          103MB
tiangolo/uwsgi-nginx-flask                      python3.6           a16ce562e863        6 weeks ago         944MB

将映像推送到注册表

生成并标记映像后,将 azure-vote-front 映像推送到 ACR 实例。 使用 docker push 并提供自己的适用于映像名称的 acrLoginServer 地址,如下所示:

docker push <acrLoginServer>/azure-vote-front:v1

可能需要数分钟才能将映像推送到 ACR。

列出注册表中的映像

若要返回已推送到 ACR 实例的映像列表,请使用 az acr repository list 命令。 按如下所示提供自己的 <acrName>

az acr repository list --name <acrName> --output table

以下示例输出将 azure-vote-front 映像列为在注册表中可用:

Result
----------------
azure-vote-front

若要查看特定映像的标记,请使用 az acr repository show-tags 命令,如下所示:

az acr repository show-tags --name <acrName> --repository azure-vote-front --output table

以下示例输出显示在上一步标记的 v1 映像:

Result
--------
v1

你现在有了一个容器映像,该映像存储在专用的 Azure 容器注册表实例中。 在下一教程中,此映像会从 ACR 部署到 Kubernetes 群集。

后续步骤

在本教程中,你创建了一个 Azure 容器注册表,并推送了一个在 Azure Stack HCI 和 Windows Server 上的 AKS 群集中使用的映像。 你已了解如何执行以下操作:

  • 创建 Azure 容器注册表 (ACR) 实例
  • 标记 ACR 的容器映像
  • 向 ACR 上传映像
  • 查看注册表中的映像

继续学习下一篇教程,了解如何在 Azure 中部署 Kubernetes 群集。