Press "Enter" to skip to content

使用 Harbor 自带的“复制(Replication)”功能迁移harbor仓库

你不需要去底层拷贝数据,也不需要写脚本去一个个 docker pull/push。你可以直接在新 Harbor 的网页后台配置一个“拉取”任务,让新 Harbor 自动去老 Harbor 把所有东西“搬”过来。

以下是保姆级的图文操作步骤(我们在新 Harbor 的界面上进行操作):

第一步:在新 Harbor 中添加“老 Harbor”为目标仓库

首先,我们要让新 Harbor 知道老 Harbor 的地址和账号密码。

  1. 登录你新搭建的 Harbor 网页后台。
  2. 在左侧系统管理菜单中,点击 仓库管理 (Registries)
  3. 点击 新建目标 (New Endpoint) 按钮。
  4. 填写配置信息:
    • 提供者 (Provider):选择 Harbor
    • 名称 (Name):随便填,比如 Old-Harbor
    • 目标 URL (Endpoint URL):填写老 Harbor 的访问地址(例如 https://old-harbor.你的域名.comhttp://IP:端口)。
    • 访问 ID (Access ID):填写老 Harbor 的管理员账号(通常是 admin)。
    • 访问密码 (Access Secret):填写老 Harbor 的管理员密码。
    • 验证远程证书 (Verify Remote Cert):如果你的老 Harbor 使用的是自签名的 HTTPS 证书或者是纯 HTTP,请把这个勾去掉,否则会报错。
  5. 点击右下角的 测试连接 (Test Connection)。如果提示成功,再点击 确定 (OK) 保存。

第二步:创建全量迁移(复制)规则

现在新 Harbor 已经连上老 Harbor 了,我们要下达“搬家”指令。

  1. 在左侧系统管理菜单中,点击 复制管理 (Replications)
  2. 点击 新建规则 (New Rule)
  3. 按照以下设置进行填写:
    • 名称 (Name):随便填,比如 Migrate-All
    • 复制模式 (Replication mode):选择 Pull-based (从远端拉取)。(注:这代表新 Harbor 主动去老 Harbor 拉取数据
    • 源资源 (Source registry):下拉选择你刚才在第一步建好的 Old-Harbor
    • 源资源过滤器 (Filters)全部留空! 留空就代表匹配所有的项目、所有的镜像、所有的版本标签(全量同步)。
    • 触发模式 (Trigger Mode):选择 Manual (手动)。(因为我们只是用来做一次性搬家迁移)。
    • 覆盖 (Override):勾选上。(如果遇到同名镜像直接覆盖)。
  4. 点击 保存 (Save)

第三步:一键执行迁移

  1. 在“复制管理”列表中,选中你刚才建好的 Migrate-All 规则。
  2. 点击上方的 执行 (Replicate) 按钮。
  3. 系统会弹窗确认,点击确定。
  4. 在页面下方的 执行记录 (Executions) 列表中,你可以看到任务的进度。点击该任务的 ID,还能看到具体正在同步哪个镜像的详细日志(成功会显示 Success)。

(由于你是跨服务器拉取,速度取决于两台服务器之间的网络带宽,请耐心等待任务进度达到 100%。)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注