(已弃用)部署和使用 Azure 容器注册表

小提示

有关本教程使用 Azure Kubernetes 服务的更新版本,请参阅 教程:部署和使用 Azure 容器注册表

警告

Azure 容器服务 (ACS) 正在被弃用。 不会向 ACS 添加新特性或功能。 所有 API、门户体验、CLI 命令和文档都标记为已弃用。

2017 年,我们引入了 Azure Kubernetes 服务(AKS),用于简化 Kubernetes 管理、部署和作。 如果使用 Kubernetes 业务流程协调程序,请在 2020 年 1 月 31 日前迁移到 AKS。 若要开始,请参阅 迁移到 Azure Kubernetes 服务

有关详细信息,请参阅 Azure.com 上的 Azure 容器服务弃用声明

Azure 容器注册表(ACR)是 Docker 容器映像的基于 Azure 的专用注册表。 本教程的第 2 部分(共 7 部分)逐步讲解如何部署 Azure 容器注册表实例,以及如何将容器映像推送到其中。 完成的步骤包括:

  • 部署 Azure 容器注册表 (ACR) 实例
  • 为 ACR 标记容器映像
  • 将映像上传到 ACR

在后续教程中,此 ACR 实例与 Azure 容器服务 Kubernetes 群集集成。

开始之前

在上一教程 中,为简单的 Azure Voting 应用程序创建了容器映像。 如果尚未创建 Azure Voting 应用映像,请返回到 教程 1 -创建容器映像。

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

部署 Azure 容器注册表

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

使用“az group create”命令创建资源组。 在此示例中,在 myResourceGroup 区域中创建了一个名为 westeurope 的资源组。

az group create --name myResourceGroup --location westeurope

使用 az acr create 命令创建 Azure 容器注册表。 容器注册表 的名称必须唯一

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

在本教程的其余部分,我们使用 <acrname> 作为容器注册表名称的占位符。

容器注册表登录

使用 az acr login 命令登录到 ACR 实例。 创建容器注册表时,需要提供提供给容器注册表的唯一名称。

az acr login --name <acrName>

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

标记容器镜像

若要查看当前镜像的列表,请使用 docker images 命令。

docker images

输出:

REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
azure-vote-front             latest              4675398c9172        13 minutes ago      694MB
redis                        latest              a1b99da73d05        7 days ago          106MB
tiangolo/uwsgi-nginx-flask   flask               788ca94b2313        9 months ago        694MB

每个容器映像都需要用注册表的 loginServer 名称进行标记。 将容器映像推送到映像注册表时,此标记用于路由。

若要获取 loginServer 名称,请运行以下命令。

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

现在,使用容器注册表的 loginServer 标签化 azure-vote-front 映像。 此外,将 :v1 添加到映像名称的末尾。 此标记指示映像版本。

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

标记后,运行 docker 镜像 以验证操作。

docker images

输出:

REPOSITORY                                           TAG                 IMAGE ID            CREATED             SIZE
azure-vote-front                                     latest              eaf2b9c57e5e        8 minutes ago       716 MB
mycontainerregistry082.azurecr.io/azure-vote-front   v1            eaf2b9c57e5e        8 minutes ago       716 MB
redis                                                latest              a1b99da73d05        7 days ago          106MB
tiangolo/uwsgi-nginx-flask                           flask               788ca94b2313        8 months ago        694 MB

将映像推送到注册表

azure-vote-front 映像推送到注册表。

使用以下示例,将 ACR loginServer 名称替换为环境中的 loginServer。

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

这需要几分钟才能完成。

列出注册表中的映像

若要返回已推送到 Azure 容器注册表的映像列表,请使用 az acr repository list 命令。 使用 ACR 实例名称更新命令。

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

输出:

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

然后若要查看特定映像的标记,请使用 az acr repository show-tags 命令。

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

输出:

Result
--------
v1

教程完成后,容器映像已存储在专用 Azure 容器注册表实例中。 此映像在后续教程中从 ACR 部署到 Kubernetes 群集。

后续步骤

在本教程中,已准备好在 ACS Kubernetes 群集中使用 Azure 容器注册表。 已完成以下步骤:

  • 部署了 Azure 容器注册表实例
  • 为 ACR 标记了容器映像
  • 将映像上传到 ACR

转到下一教程,了解如何在 Azure 中部署 Kubernetes 群集。