本文语雀知识库:https://www.yuque.com/seanyu/azure/acr

概述

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

创建容器注册表

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

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

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

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

记下“登录服务器”的值。 结合 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-latest

az acr login --name <acrName>

当我们第一次执行的时候,可能会遇到如下的错误:

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

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

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

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

az cloud set --name AzureChinaCloud 

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

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

将映像推送到注册表

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

docker pull hello-world

将映像推送到注册表之前,必须使用 ACR 登录服务器的完全限定的名称进行标记。 登录服务器名称采用 <registry-name>.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

在portal查看容器映像

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

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

从注册表运行映像

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

docker run <acrLoginServer>/hello-world:v1

配置异地复制

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

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

地图中显示了所有当前的 Azure 区域:

  • 蓝色六边形表示当前的副本
  • 绿色六边形表示可能的复制区域
  • 灰色六边形表示尚不可复制的 Azure 区域

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

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

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 每月将支付两次高级费用,且无额外配置或管理。 现在每个区域就从本地拉取映像,既提升了性能和可靠性,又节省了从中国北部到中国东部的网络传输费用。

Azure Container Registry-基于开源 Docker Registry 的专用 Docker 注册表服务的更多相关文章

  1. 使用Azure Docker容器注册表服务

    1.登录你的Azure 容器注册表服务 az acr login --name ledesign 2.给你本地准备好的Image打上上云之前的版本标签 docker tag ledesign-serv ...

  2. 使用Aliyun Docker 容器镜像/注册表服务

    1.前往阿里云容器镜像服务创建相关资源. 2.登录你的仓库,账户名+公共地址 docker login --username=xxxxxxxxx@aliyun.com registry.cn-hang ...

  3. 使用 Azure Container Registry 储存镜像

    Azure Container Registry(容器注册表)是基于 Docker Registry 2.0规范的托管专用 Docker 注册表服务. 可以创建和维护 Azure 容器注册表来存储与管 ...

  4. Docker系列08—搭建使用私有docker registry

    本文收录在容器技术学习系列文章总目录 1.了解Docker Registry 1.1 介绍 registry 用于保存docker 镜像,包括镜像的层次结构和元数据. 启动容器时,docker dae ...

  5. 注册表操作 Microsoft.Win32.Registry与RegistryKey类

    一.注册表操作简介 Registry 类,RegistryKey 类提供了操作注册表的接口 RegistryValueKind:用于指定操作注册表的数据类型 一.注册表巢 在注册表中,最上面的节点是注 ...

  6. 【OF框架】在Azure DevOps中配置项目持续集成CI服务,推送镜像到Azure容器注册表

    准备工作 开通Azure账号,具有开通服务权限,关键是里面要有钱. 开通Azure DevOps,能够创建组织和项目. 具备一定的DevOps知识,了解CICD概念.Docker基本操作. 一.创建& ...

  7. Docker 开源项目之 registry - 部署 registry (注册表)服务器

    原文地址 在部署 registry 之前需要现在主机上安装 Docker.registry 实际上就是运行在 Docker 中的 registry 镜像的实例. 本主题提供关于部署和配置 regist ...

  8. docker4dotnet #4 使用Azure云存储构建高速 Docker registry

    使用Docker来构建应用程序最常见的操作就是 docker run 或者 docker pull了,但是由于众所周知的原因,在国内想要高速稳定的获取docker hub上面的资源并不是件容易的事情, ...

  9. 使用Azure云存储构建高速 Docker registry

    使用Azure云存储构建高速 Docker registry 使用Docker来构建应用程序最常见的操作就是 docker run 或者 docker pull了,但是由于众所周知的原因,在国内想要高 ...

随机推荐

  1. 「HNOI2010」弹飞绵羊

    「HNOI2010」弹飞绵羊 传送门 考虑分块. 每一个位置 \(i\) ,记 \(to[i]\) 表示从这个位置一直往右跳回落在哪个位置. 然后修改的时候直接暴改,查询也是暴跳,复杂度 \(O(n ...

  2. Lamda表达式学习笔记二

    Lamda表达式学习笔记二 lamda表达式----方法引用 上一篇讲到Lamda体就是对函数式接口方法的实现 ,在方法体中我们可能会引用其他方法实现逻辑,所以在lamda体中我们可以直接引用器方法 ...

  3. ubuntu 14 双击会自动删除文本

    可能是ibus输入法引起,解决方法: Step1打开ibus首选项 $ibus-setup Step2 取消"Embed preedit text in application window ...

  4. Lucene_solr

    1.总结 https://pan.baidu.com/s/1pMAWk0z  密码:ekhx 2.代码 https://pan.baidu.com/s/1nxmTWy1   密码:65ec 3.资料 ...

  5. 运行cmd直接进入指定目录下的命令

    新建一个.bat批处理文件,文件命令为@ECHO OFF cmd /k cd /d c:data 运行该批处理文件cmd就可进入指定的文件夹,感兴趣的朋友可以参考下啊 新建一个.bat批处理文件,文件 ...

  6. 「NOIP2009」Hankson 的趣味题

    Hankson 的趣味题 [内存限制:$128 MiB$][时间限制:$1000 ms$] [标准输入输出][题目类型:传统][评测方式:文本比较] 题目描述 Hanks 博士是 BT(Bio-Tec ...

  7. java的浅拷贝和深拷贝(待解决)

    1.什么是浅拷贝,什么是深拷贝? 2.storm的并行度问题,需要使用全局变量static ConcorrentHashMap,因为加了static,所有的线程只能拷贝该全局变量的一个唯一的副本,进行 ...

  8. mysql数据库的索引类型

      MySQL索引类型: 1.普通索引 最基本的索引,它没有任何限制,用于加速查询. 创建方法: a. 建表的时候一起创建 CREATE TABLE mytable ( name VARCHAR(32 ...

  9. 面试题23从上到下打印二叉树+queue操作

    //本题思路就是层次遍历二叉树,使用一个队列来模拟过程 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *ri ...

  10. MongoDB分片技术原理和高可用集群配置方案

    一.Sharding分片技术 1.分片概述 当数据量比较大的时候,我们需要把数分片运行在不同的机器中,以降低CPU.内存和Io的压力,Sharding就是数据库分片技术. MongoDB分片技术类似M ...