教程:为 Arc 启用的 AKS 创建Azure 容器注册表

适用于:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS

Azure 容器注册表是容器映像的专用注册表。 可以通过专用容器注册表安全地生成和部署应用程序和自定义代码。

在本教程的第 2 部分(共 7 部分)中,将部署一个 Azure 容器注册表 实例,并将容器映像推送到该实例,以便在 AKS 中使用。 将了解如何执行以下操作:

  • 创建 Azure 容器注册表实例
  • 标记容器映像以Azure 容器注册表
  • 将图像上传到Azure 容器注册表
  • 查看注册表中的映像

在后面的教程中,此 Azure 容器注册表 实例与 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 容器映像与Azure 容器注册表配合使用,请确保使用注册表的登录服务器地址标记映像。 在将容器映像推送到映像注册表时,使用此标记进行路由。

若要获取登录服务器地址,请使用 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 映像

docker images

映像使用 Azure 容器注册表 实例地址和版本号进行标记:

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 映像推送到 Azure 容器注册表 实例。 使用 docker push 并为映像名称提供自己的 acrLoginServer 地址,如下所示:

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

完成映像推送到Azure 容器注册表可能需要几分钟时间。

列出注册表中的映像

若要返回推送到 Azure 容器注册表 实例的映像列表,请使用 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 容器注册表实例中。 下一教程将此映像从 Azure 容器注册表 部署到 Kubernetes 群集。

后续步骤

在本教程中,你创建了一个Azure 容器注册表并推送了一个用于 Kubernetes 群集的映像。 你已了解如何执行以下操作:

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

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