You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们
导航

外部仓库同步至镜像仓库

最近更新时间2023.09.20 14:10:10

首次发布时间2022.07.14 10:48:32

本文主要介绍实例同步功能中,将外部仓库(例如 AWS、Harber、Docker)迁移到火山引擎镜像仓库标准版实例的操作。

背景信息

镜像仓库 CR 支持一键迁移火山引擎以外的外部仓库至标准版实例,为您提供专业稳定的托管服务及技术支持,减少自行搭建及维护的运维管理成本,满足低复杂度交付业务需求。

注意

  • 近期中国大陆地区出现无法访问 Dockerhub 的现象,可能导致华南1(广州)和 华北2(北京)地域的 DockerHub 相关的镜像推拉和实例同步功能不可用。
  • 华北2(北京)和华东2 (上海)已通过技术手段实现跨境同步的稳定传输,支持正常使用。

使用限制

  • 当前支持迁移的自定义仓库源有:AWS ECR(Amazon Elastic Container Registry) 私有 类型存储库、Harbor 和 Docker。
  • 请确保 Harbor 能够通过 公网 正常推拉镜像。当前仅支持公网的方式同步外部镜像。
  • 每个账号最多支持同时启用 5 个同步规则。
  • 规则删除后无法查看历史日志。
  • 每个规则默认保留最近 1000 条同步日志。

前提条件

  • 请确保源实例和目标实例均处于 运行中 状态。
  • 已准备好外部源仓库实例的地址、用户名、密码等相关信息。

操作步骤

步骤一:配置同步规则

  1. 登录 镜像仓库控制台
  2. 在左侧导航栏选择 分发管理 > 实例同步,单击 创建实例同步规则
  3. 创建实例同步规则 页面,根据要求填写参数信息。
    alt
  • 实例同步类型

    参数说明

    同步类型

    镜像仓库支持如下几种同步类型:

    • 体验版迁移:将体验版实例中的镜像,迁移到标准版实例。详细操作,请参见 体验版实例同步至标准版实例

    • 实例间同步:将镜像仓库中的标准版实例,同步到如下两个目标实例:

    • 外部迁移:将外部仓库迁移到火山引擎镜像仓库标准版实例中。本文主要讲解该同步类型的操作,因此此处选择 外部迁移

  • 基本信息

    参数说明
    名称自定义同步规则名称。同一个账号下名称必须唯一。
    描述根据需要填写对该规则的描述信息。可以为空,字数限制 200 字符以内。
  • 源实例配置

    外部仓库的来源,目前仅支持 AWS(AWS ECR) 、HarborDocker

    说明

    来源为 AWS ECR 时,仅支持同步 私有 类型存储库,不支持 公有 类型。

    • Harbor
    参数说明
    服务地址http(s):// 开头的外部源仓库服务地址。例如 http://180.**.**.**/

    忽略证书有效性

    是否忽略源仓库地址的证书有效性。

    • :忽略外部源仓库证书的有效性,直接同步外部仓库至镜像仓库。

    • 否: 不忽略外部源仓库证书的有效性,若源仓库证书不在有效期内,则无法同步。以 https 开头的服务地址必须选择

    注意

    外部源仓库证书必须为权威机构签发的证书,否则此处选择 后,会同步失败。

    用户名登录 Harbor 仓库的用户名。
    密码登录 Harbor 仓库的密码。
    命名空间Harbor 仓库中需要同步的项目名称。

    仓库

    需要同步的外部源仓库命名空间下的 OCI 制品仓库。

    • 全部:同步指定命名空间下的全部 OCI 制品仓库。

    • 正则匹配:通过输入正则规则,匹配需要同步的 OCI 制品仓库。配置详情,请参见本文下方 正则匹配示例

    版本 Tag

    需要同步的 OCI 制品版本。

    • 全部:同步指定仓库下的全部 OCI 制品版本。

    • 正则匹配:通过输入正则规则,匹配需要同步的 OCI 制品版本。配置详情,请参见本文下方 正则匹配示例

    • AWS
    参数说明
    服务地址http(s):// 开头的外部源仓库服务地址。例如 http(s)://index.dockrhub.io

    忽略证书有效性

    是否忽略源仓库地址的证书有效性。

    • :忽略外部源仓库证书的有效性,直接同步外部仓库至镜像仓库。

    • 否: 不忽略外部源仓库证书的有效性,若源仓库证书不在有效期内,则无法同步。

    注意

    外部源仓库证书必须为权威机构签发的证书,否则此处选择 后,会同步失败。

    Access Key IDAWS 账号的 Access Key ID。

    Secret Access Key

    AWS 账号的 Secret Access Key。

    仓库

    需要同步的外部源仓库命名空间下的 OCI 制品仓库。

    • 全部:同步指定命名空间下的全部 OCI 制品仓库。

    • 正则匹配:通过输入正则规则,匹配需要同步的 OCI 制品仓库。配置详情,请参见本文下方 正则匹配示例

    版本 Tag

    需要同步的 OCI 制品版本。

    • 全部:同步指定仓库下的全部 OCI 制品版本。

    • 正则匹配:通过输入正则规则,匹配需要同步的 OCI 制品版本。配置详情,请参见本文下方 正则匹配示例

    • Docker

    注意

    Docker Hub 的免费用户存在镜像拉取速率限制,超出限制可能导致同步失败。建议配置方法如下:

    • 正则匹配 采用精确写法,非模糊匹配,避免拉取无用的镜像。例如 仓库 填写 nginx版本 Tag 正则匹配 填写 ^v1.0.0$
    • 同步间隔时长 6 小时以上,避免频繁拉取导致限速。
    参数说明
    访问地址固定为 https://hub.docker.com

    用户名

    登录 Dockerhub 仓库的用户名。

    注意

    必须使用 Docker Hub 仓库的注册用户名登录,不支持使用邮箱地址登录。

    密码登录 Dockerhub 仓库的密码。

    类型

    支持同步公共仓库和个人仓库:

    • library:同步公开的 Dockhub 仓库,可以获取 nginxubuntu 等基础镜像。

    • 个人仓库:同步个人账号下的 Dockerhub 仓库。

    命名空间

    Docker 仓库中需要同步的命名空间名称。

    • Library(公共仓库):固定为 library

    • 个人仓库:对应 Dockerhub 中的 account+organzation。

    仓库

    需要同步的外部源仓库命名空间下的 OCI 制品仓库。

    • Library(公共仓库): 仅支持仓库名称精准匹配,需要正确填写公共仓库的名称,例如 nginxubuntupythonredis 等。

    • 个人仓库:

      • 全部:同步指定命名空间下的全部 OCI 制品仓库。

      • 正则匹配:通过输入正则规则,匹配需要同步的 OCI 制品仓库。配置详情,请参见本文下方 正则匹配示例

    版本 Tag

    需要同步的 OCI 制品版本。

    • Library(公共仓库):

      • Latest: OCI 制品的最新版本。默认同步 latest 版本。

      • 正则匹配:通过输入正则规则,匹配需要同步的 OCI 制品版本。可以填.*同步全部。配置详情,请参见本文下方 正则匹配示例

    • 个人仓库:

      • 全部:同步指定仓库下的全部 OCI 制品版本。

      • 正则匹配:通过输入正则规则,匹配需要同步的 OCI 制品版本。配置详情,请参见本文下方 正则匹配示例

  • 目标实例配置

    参数说明
    实例名称选择镜像仓库中的目标标准版实例,外部仓库将同步到该标准版实例。

    命名空间

    选择标准版实例下的目标命名空间。

    • 来源 为 AWS :必须选择目标实例下的命名空间。

    • 来源 为 Harbor :可以不填写。

      • 不填写则默认同步至与 源仓库同名的命名空间。

      • 若不存在同名命名空间,默认在目标实例下创建同名的命名空间。

    • 来源为 Docker:可以不填写。

      • 不填写则默认同步至与源仓库同名的命名空间。

      • 若不存在同名命名空间,默认在目标实例下创建同名的命名空间。

      说明

      选择 library 时,默认同步至命名空间 library 下。没有 library 命名空间则时默认创建。

  • 同步规则

    参数说明
    镜像覆盖勾选后启用。启用后表示若目标标准版实例中存在与外部仓库中的镜像同名的镜像,则外部仓库镜像会覆盖目标实例的已有同名镜像。

    规则状态

    勾选后启用该规则,并可选择设置以下触发条件:

    • 定时触发:设置后固定间隔时间触发一次同步,首次同步时间视设置决定。

      • 首次触发时间:注意最早只能设置到当前时间。

      • 触发频率:设置间隔时间。默认每 24 小时触发一次。可选范围为 1~720 小时。

    • 手动触发:若选择手动触发,该规则不会被自动触发,需要您手动执行同步操作。

步骤二:执行同步规则

支持如下两种触发方式:

  • 若您在配置同步规则时选择 定时触发,则系统会定时自动触发一次同步。

    说明

    定时触发的同步规则,也可以手动触发。

  • 若您选择 手动触发,请参考以下步骤:
    1. 镜像仓库控制台的左侧导航栏选择 分发管理 > 实例同步
    2. 实例同步 页面,找到需要触发的规则,单击对应 操作 列的 触发
      alt
    3. 在系统弹出的提示框中确认规则信息,单击 确定,触发同步操作。

步骤三:查看同步日志

  1. 镜像仓库控制台 左侧导航栏选择 分发管理 > 实例同步

  2. 实例同步 页面,找到目标规则,单击规则名称。

  3. 在规则详情页面,单击 同步日志 页签,查看对应规则的所有同步日志。

    标题标题
    任务 ID实例内唯一的同步任务 ID。

    同步状态

    任务完成状态,同步中、成功、失败。

    说明

    • 若同步状态为 成功,说明同步任务正常触发,且至少成功同步一个 OCI 制品版本。
    • 若同步状态为 失败,表明任务触发失败。可能原因如下:
      • 镜像仓库与外部源仓库网络不通
      • 外部源仓库地址不存在
      • 外部源仓库账号密码错误
      • 外部源仓库密码失效
      • 目标标准版实例命名空间不存在
      • 目标标准版实例状态不是 运行中
    任务耗时完成全部同步任务消耗的时间。
    成功比例(成功的 tag 数÷总 tag 数)×100%
    同步仓库数当前任务需要同步的OCI制品仓库数量。
    触发时间同步任务的触发时间。
  4. 单击任务 ID,可查看该同步任务的详情。展示本次同步任务源实例下的[namespace]/[repo]:tag,目标实例下的[namespace]/[repo]:tag,及同步状态。
    同步状态为 成功 表明源实例的制品成功同步到目标实例;同步状态为 失败 表明源实例的制品未能同步到目标实例。

正则匹配示例

匹配目标正则表达式匹配目标名称
v1version-1test-1v2
完全匹配v1---
前缀匹配^v(.*)$-
后缀匹配^(*.)-1$--
版本号匹配^v([0-9.]+)$--