Docker Registry镜像迁移至Harbor仓库完整指南

前言

在企业级容器化环境中,镜像仓库的迁移和同步是常见的运维操作。本文将详细介绍如何将Docker Registry中的镜像迁移到功能更强大的Harbor仓库,并建立跨节点的镜像复制规则。Harbor作为企业级Docker Registry服务,提供了镜像复制、漏洞扫描、用户管理等高级功能,非常适合生产环境使用。

一、准备测试镜像

首先我们需要在原有的Docker Registry中准备测试镜像:

# 标记本地镜像并推送到旧Registry
docker tag linux92-games:motuo-v0.1 10.0.0.101:5000/oldboyedu-games/motuo:v0.1
docker push 10.0.0.101:5000/oldboyedu-games/motuo:v0.1

docker tag linux92-games:doudizhu-v0.1 10.0.0.101:5000/oldboyedu-games/doudizhu:v0.1
docker push 10.0.0.101:5000/oldboyedu-games/doudizhu:v0.1

# 推送数据库镜像
docker push 10.0.0.101:5000/oldboyedu-db/mysql:8.3.0-oracle

二、验证Registry中的镜像

通过访问Registry的API端点验证镜像是否推送成功:

http://10.0.0.101:5000/v2/_catalog

此API会返回Registry中所有仓库的列表,确保我们推送的镜像已正确存储。

三、Harbor仓库部署

3.1 在101节点安装Harbor

  1. 传输安装包
scp harbor-offline-installer-v2.7.4.tgz 10.0.0.101:~
  1. 解压安装包
tar xf harbor-offline-installer-v2.7.4.tgz -C /oldboyedu/softwares/
  1. 准备配置文件
cd /oldboyedu/softwares/harbor/
cp harbor.yml{.tmpl,}
  1. 修改Harbor配置(关键配置):
hostname: 10.0.0.101  # 使用IP或域名
harbor_admin_password: 1  # 设置管理员密码
data_volume: /oldboyedu/data/harbor  # 数据存储路径
  1. 安装Harbor(包含ChartMuseum支持):
./install.sh --with-chartmuseum

3.2 在102节点安装Harbor

在第二个节点重复上述安装步骤,建立多节点Harbor集群。

四、配置镜像复制规则

4.1 创建复制规则

  1. 登录Harbor Web界面(http://10.0.0.101
  2. 进入"复制管理" → "新建复制规则"
  3. 配置源Registry信息:
    • 名称:docker-registry-to-harbor
    • 源Registry:10.0.0.101:5000
    • 目标命名空间:oldboyedu-games(与源保持一致)
    • 触发模式:手动(生产环境可设置为事件驱动)

4.2 客户端配置

为确保客户端能访问新旧仓库,需配置Docker守护进程:

# /etc/docker/daemon.json
{
  "insecure-registries": [
    "10.0.0.101:5000",
    "harbor.oldboyedu.com", 
    "10.0.0.101"
  ]
}

systemctl restart docker

五、测试镜像复制

5.1 手动触发复制

  1. 在Harbor界面找到创建的复制规则
  2. 点击"立即复制"按钮触发同步
  3. 监控任务状态直至完成

5.2 验证镜像

在目标Harbor中验证镜像是否同步成功:

docker pull 10.0.0.101/oldboyedu-linux/linux92:v0.1

六、仓库权限管理

默认情况下,Harbor同步的镜像会被设置为私有项目。如需允许匿名拉取:

  1. 进入项目设置
  2. 将"访问级别"从"私有"改为"公开"
  3. 保存更改

七、生产环境建议

  1. HTTPS配置:生产环境务必配置HTTPS证书,提升安全性
  2. 存储后端:建议使用高可用存储(如Ceph、NFS)作为数据卷
  3. 备份策略:定期备份Harbor数据库和镜像数据
  4. 监控告警:配置Harbor健康检查和性能监控
  5. 资源配额:为不同项目设置存储配额,防止磁盘耗尽

常见问题排查

  1. 复制失败

    • 检查网络连通性
    • 验证源Registry是否允许拉取
    • 查看Harbor任务日志获取详细信息
  2. 拉取镜像失败

    • 确认客户端已配置insecure-registry
    • 检查Harbor项目是否为公开或用户有访问权限
    • 验证DNS解析是否正确
  3. 性能问题

    • 大镜像复制时可能超时,适当调整超时设置
    • 网络带宽不足时考虑分批次迁移

结论

通过本文介绍的步骤,您可以顺利完成从Docker Registry到Harbor的镜像迁移,并建立可靠的镜像复制机制。Harbor提供的企业级功能将极大提升您的容器镜像管理能力,为CI/CD流水线提供稳定基础。

对于大规模生产环境,建议进一步研究Harbor的高可用部署、与Kubernetes的集成以及漏洞扫描等高级功能,构建更完善的容器安全体系。

posted on 2025-04-13 17:23  Leo-Yide  阅读(342)  评论(0)    收藏  举报