快速入门:使用 Azure 门户创建专用容器注册表

Azure 容器注册表是 Azure 中的专用 Docker 注册表,你可在其中存储和管理专用 Docker 容器映像。 在本快速入门教程中,你会使用 Azure 门户创建容器注册表。 然后,使用 Docker 命令将容器映像推送到注册表中,最终从注册表提取并运行该映像。

若要登录到注册表以使用容器映像,本快速入门要求运行 Azure CLI(建议使用 2.0.55 或更高版本)。 运行 az --version 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI

还必须在本地安装 Docker。 Docker 提供的包可在任何 MacWindowsLinux 系统上轻松配置 Docker。

登录 Azure

通过 https://portal.azure.cn 登录到 Azure 门户。

创建容器注册表

选择“创建资源”,在搜索筛选器中键入“容器注册表”,然后单击回车键。

在 Azure 门户中创建容器注册表

在搜索结果中选择“容器注册表”项。

在 Azure 门户中创建容器注册表

选择“创建” 。

在 Azure 门户中创建容器注册表

在“注册表名称”和“资源组”中输入值。 注册表名称在 Azure 中必须唯一,并且包含 5-50 个字母数字字符。 对于本快速入门,在 China North 位置创建名为 myResourceGroup 的新资源组,对于 SKU,选择“基本”。 选择“创建”,部署 ACR 实例。

在 Azure 门户中创建容器注册表

本快速入门将创建一个“基本”注册表。该注册表已针对成本进行优化,是可供开发人员了解 Azure 容器注册表的选项。 有关可用服务层的详细信息,请参阅容器注册表 SKU

显示“部署成功”消息时,请在门户中选择容器注册表。

Azure 门户中的容器注册表概述

记下“登录服务器”的值。 结合 Azure CLI 和 Docker 使用注册表时,请在以下步骤中使用此值。

登录到注册表

在推送和拉取容器映像之前,必须登录到 ACR 实例。 在操作系统中打开命令外壳,然后在 Azure CLI 中使用 az acr login 命令。

az acr login --name <acrName>

该命令在完成后返回 Login Succeeded

将映像推送到注册表

要将映像推送到 Azure 容器注册表,首先必须具有一个映像。 如果还没有任何本地容器映像,请运行以下 docker pull 命令,从 Docker 中心拉取现有映像。 就此示例来说,请拉取 hello-world 映像。

docker pull hello-world

将映像推送到注册表之前,必须使用 ACR 登录服务器的完全限定的名称进行标记。 登录服务器名称采用 <registry-name>.azurecr.cn(全小写)格式,例如 mycontainerregistry007.azurecr.cn

使用 docker tag 命令标记映像。 使用 ACR 实例的登录服务器名称替换 <acrLoginServer>

docker tag hello-world <acrLoginServer>/hello-world:v1

最后,使用 docker push 将映像推送到 ACR 实例。 使用 ACR 实例的登录服务器名称替换 <acrLoginServer>。 此示例创建 hello-world 存储库,其中包含 hello-world:v1 映像。

docker push <acrLoginServer>/hello-world:v1

将映像推送到容器注册表后,请从本地 Docker 环境中删除 hello-world:v1 映像。 (请注意,此 docker rmi 命令不从 Azure 容器注册表中的 hello-world 存储库删除该映像。)

docker rmi <acrLoginServer>/hello-world:v1

列出容器映像

若要列出注册表中的映像,请在门户中导航到注册表并选择“存储库”,然后选择使用 docker push 创建的存储库。

在本示例中,我们选择了 busybox 存储库,然后可在“标记”下看到 v1 标记的映像。

在 Azure 门户中列出容器映像

从注册表运行映像

现在,可以使用 docker run 从容器注册表拉取并运行 hello-world:v1 容器映像:

docker run <acrLoginServer>/hello-world:v1  

示例输出:

Unable to find image 'mycontainerregistry007.azurecr.cn/hello-world:v1' locally
v1: Pulling from hello-world
Digest: sha256:662dd8e65ef7ccf13f417962c2f77567d3b132f12c95909de6c85ac3c326a345
Status: Downloaded newer image for mycontainerregistry007.azurecr.cn/hello-world:v1

Hello from Docker!
This message shows that your installation appears to be working correctly.

[...]

清理资源

若要清理资源,请在门户中导航到 myResourceGroup 资源组。 加载该资源组后,单击“删除资源组”以删除该资源组、容器注册表以及其中存储的容器映像。

在 Azure 门户中删除资源组