zoukankan      html  css  js  c++  java
  • Azure Container Registry-基于开源 Docker Registry 的专用 Docker 注册表服务

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

    概述

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

    创建容器注册表

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

    image.png

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

    image.png

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

    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-latest

    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 容器注册表,然后选择“复制” :

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

  • 相关阅读:
    iOS 调试心得
    一步一步带你安装史上最难安装的 vim 插件
    20 行代码极速为 App 加上聊天功能
    在通知栏上玩游戏,Steve iOS 游戏实现思路
    ThinkPHP 3.2.x 集成极光推送指北
    MkDocs 文档生成逻辑浅析
    极光推送的角标问题
    聊天界面-自适应文字
    Python3.7源码包编译安装
    Navicat远程连接MySQL数据库
  • 原文地址:https://www.cnblogs.com/shuzhenyu/p/12257791.html
Copyright © 2011-2022 走看看