# 场景描述

部分用户存在多云场景,并且使用某一家云上的自建 Harbor 作为镜像仓库。
存在以下场景:lstack LCR 的实例可以通过公网访问该 harbor。

# LCR 同步 harbor 的镜像

  1. 登录容器镜像服务控制台 (opens new window)

  2. 点击左侧同步管理>源仓库管理,配置 harbor 仓库信息。

    1) 单击创建源仓库.

    2) 填写以下内容

    • 镜像实例: 被操作的镜像实例;表示从该实例复制镜像或者复制镜像到该实例;
    • 提供者: 目标仓库的类型本案例中选择 harbor;
    • 目标名: 自定义;
    • 描述: 自定义;
    • 验证远程证书: 如果 harbor 使用的是自签名证书或者非信任证书请不要勾选此项;
    • 目标 URL: 使用 harbor 的公网域名;
    • 访问 ID: 目标仓库的 ID 本案例填写 harbor 的用户名;
    • 访问密码: 目标仓库的密钥本案例填写 harbor 的密码。
  3. 配置同步策略。

    1) 点击创建同步策略

    2) 填写如下参数

    • 镜像实例: 被操作的镜像实例;表示从该实例复制镜像或者复制镜像到该实例;

    • 策略名称: 自定义。

    • 描述: 自定义。

    • 同步模式: push-based 将本实例的镜像推送到远端;pull-based 将资源从远端仓库拉取到本仓库。 本案例选择 pull-based。

    • 资源过滤器: 名称/tag。

      Note: 名称和 tag 过滤支持以下规则.

      * :匹配任何非分割符/的字符序列;
      ** :匹配任何字符包括分隔符/,请注意,**本身必须作为路径组件显示。像/path**这样的模式是无效的,将被当作/path*一样对待,但是/path*/**应该能得到想要的结果;
      ? :匹配除/外的任何单个字符;
      {alt1,…} :匹配逗号分隔的每个序列。

      注意: 如果想同步 docker hub 的官方镜像,您必须添加library, 例如library/hello-world

    Pattern String(是否匹配)
    library/* library/hello-world(Y)
    library/my/hello-world(N)
    library/** library/hello-world(Y)
    library/my/hello-world(Y)
    {library,goharbor}/** library/hello-world(Y)
    goharbor/harbor-core(Y)
    google/hello-world(N)
    1.? 1.0(Y)
    1.01(N)
    • 源仓库: 目标远程仓库。
    • 目标组织: 将镜像放置在哪个组织下。
  4. 创建完成后单击同步

  5. 单击策略的名称可以查询到同步任务,以及同步的进度。