Azure Container Registry

语雀知识库:https://www.yuque.com/seanyu/azure/acrweb

公众号:云计算实战docker


概述

Azure 容器注册表(Azrue Container Registry,简称ACR)是 Azure 中的专用 Docker 注册表,你可在其中存储和管理专用 Docker 容器映像。服务器


建立容器注册表

选择“建立资源” ,在“新建” 选项卡的搜索筛选器中键入“容器注册表”或英文下输入“Container Registry”网络

image.png


在“注册表名称”和“资源组”中输入值 。 注册表名称在 Azure 中必须惟一,而且包含 5-50 个字母数字字符。截至到2020.02月,中国区四个区域都已经能够建立ACR。并发


image.png                                    


其中有三个SKU,高级版支持异地复制。ide

image.png



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


image.png

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

登陆到注册表

在推送和拉取容器映像以前,必须登陆到 ACR 实例。 在操做系统中打开命令外壳,而后在 Azure CLI 中使用 az acr login 命令。云计算


其中 Azure CLI 下载地址:https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latestspa


az acr login --name <acrName>


当咱们第一次执行的时候,可能会遇到以下的错误

第一个错误是没有安装或启动Docker,请自行下载安装运行便可;

第二个错误是没有登陆过 Azure CLI,须要先登登陆。

image.png


当咱们按照提示输入az login,并跳转到到https://login.microsoftonline.com/common/oauth2/authorize?response_type=code 之类的网址时,该地址针对global的Azure是正确的。


image.png


对于中国区的Azure,须要先执行 


az cloud set --name AzureChinaCloud


image.png

跳转到如图相似的网址(https://login.partner.microsoftonline.cn/common/oauth2/authorize)认证地址才是中国区登陆。


再次执行 az acr login --name <acrName>,该命令在完成后返回 Login Succeeded

image.png


将映像推送到注册表

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


docker pull hello-world


image.png


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

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


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

image.png


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


docker push <acrLoginServer>/hello-world:v1

image.png


查看本地的映像:

image.png


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


docker rmi <acrLoginServer>/hello-world:v1


image.png


在portal查看容器映像

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

在本示例中,选择 hello-world 存储库,并可在“标记”下看到 v1 标记的映像 。


image.png


从注册表运行映像

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


docker run <acrLoginServer>/hello-world:v1


image.png




配置异地复制

只有高级SKU的ACR才具备异地复制功能,若是不是高级SKU,请先升级。

image.png

image.png


导航到 Azure 容器注册表,而后选择“复制” :

1580735983326-71651856-e514-474f-8268-cceabc590366.png

地图中显示了全部当前的 Azure 区域:

1580735981770-5a2be09c-3e81-4d36-933f-6e69fdb60bed.png

  • 蓝色六边形表示当前的副本

  • 绿色六边形表示可能的复制区域

  • 灰色六边形表示尚不可复制的 Azure 区域

若要配置副本,请选择一个绿色六边形,而后选择“建立” :

1580735981840-1c87c932-5003-439a-b269-44c3fab67241.png

若要建立其余副本,请选择表示其余区域的绿色六边形,而后单击“建立” 。

ACR 将开始在配置的副本间同步映像。 完成后,门户将显示“就绪” 。 门户中的副本状态不会自动更新。 使用刷新按钮查看更新状态。

使用异地复制注册表的注意事项

  • 异地复制注册表中的每一个区域在设置后都是独立的。 Azure 容器注册表 SLA 适用于每一个异地复制区域。

  • 当你从异地复制注册表中推送或拉取映像时,后台的 Azure 流量管理器会将请求发送到位于离你最近的区域中的注册表。

  • 将映像或标记更新推送到最近的区域后,Azure 容器注册表须要一些时间将清单和层复制到你选择加入的其他区域。 较大的映像比较小的映像复制所需的时间更长。 映像和标记经过最终一致性模型在复制区域之间进行同步。

  • 若要管理依赖于对异地复制进行推送更新的工做流,建议你配置 Webhook 以响应推送事件。 你能够在异地复制注册表中设置区域性 Webhook,以跟踪在异地复制区域内完成的推送事件。

删除ACR副本

为注册表配置副本后,若是再也不须要它,能够随时将其删除。 使用 Azure 门户或其余工具(例如 Azure CLI 中的 az acr replication delete 命令)删除副本。

若要在 Azure 门户中删除副本,请执行如下操做:

  1. 导航到 Azure 容器注册表,而后选择“复制” 。

  2. 选择副本的名称,而后选择“删除” 。 确认要删除该副本。

 备注

没法删除注册表的主区域(即建立注册表的位置)中的注册表副本。 只能经过删除注册表自己来删除主副本。

订价及异地复制订价

*每个月价格估算基于每月 744 小时的使用量。


基本 标准 高级
每日价格 1.6953 6.784 16.96
包含的存储 (GB) 10 GB 100 GB 500
高级跨多个并发节点提供 docker 拉取请求的加强型吞吐量
总 Webhook 2 10 100
(可根据请求提供其余信息)

标准网络费用适用(出站数据流量)。

异地复制是 Azure 容器注册表高级 SKU 的一项功能。 将注册表复制到所需区域时,每一个区域都会产生高级注册表费用

在前面的示例中,Contoso 将两个注册表合并到一块儿,并向中国东部和中国北部添加副本。 Contoso 每个月将支付两次高级费用,且无额外配置或管理。 如今每一个区域就从本地拉取映像,既提高了性能和可靠性,又节省了从中国北部到中国东部的网络传输费用。



image.png

相关文章
相关标签/搜索