docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker Registry升级部署Harbor

Docker Registry升级部署Harbor的实现步骤

作者:rockmelodies

本文详细介绍了如何从单机Docker Registry迁移到企业级Harbor仓库的完整流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

第一步:备份现有 Registry 数据(重要!)

在卸载任何东西之前,请务必备份您现有的镜像数据,以防万一需要回滚。

# 1. 查看旧仓库占用的空间(确认数据位置)
sudo du -sh /data/docker-registry
# 2. 创建备份目录
mkdir -p ~/backup
# 3. 将整个数据目录打包备份
sudo tar czf ~/backup/old-registry-backup-$(date +"%Y%m%d").tar.gz -C /data docker-registry
# 4. 验证备份文件是否创建成功
ls -lh ~/backup/

第二步:停止并卸载旧的 Docker Registry 容器

这一步是清理旧环境,为 Harbor 腾出空间和端口。

# 1. 停止并删除旧的 registry 容器
docker stop docker-registry
docker rm docker-registry
# 2. (可选)如果您想彻底清理空间,可以删除旧的数据目录
# 注意:请确保上一步的备份已成功完成,再执行此操作
# sudo rm -rf /data/docker-registry

第三步:部署 Harbor

我们将使用 Harbor 的离线安装包进行部署,这种方式更稳定可靠。

3.1 安装 Docker Compose

Harbor 依赖于 Docker Compose 来管理其多个组件。

# 下载 Docker Compose(如果尚未安装)
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version

3.2 下载并配置 Harbor

  1. 下载离线安装包
    访问 Harbor 官方 GitHub 的 Release 页面,找到 v2.7.1 或更新的稳定版本,复制离线安装包(harbor-offline-installer-<版本>.tgz)的下载链接,然后在服务器上执行:

    cd ~
    wget https://github.com/goharbor/harbor/releases/download/v2.7.1/harbor-offline-installer-v2.7.1.tgz
    tar xvf harbor-offline-installer-v2.7.1.tgz
    cd harbor
  2. 修改配置文件
    复制配置文件模板并进行修改。

    cp harbor.yml.tmpl harbor.yml
    vim harbor.yml

    必须修改的配置项:

    # 修改为您的服务器IP地址或域名,例如:192.168.1.100
    hostname: 请替换为您的服务器IP
    # http 相关配置保持默认,监听80端口
    http:
      port: 80
    # 重要:将 https 相关部分全部注释掉,因为我们暂时使用 HTTP
    # https:
      # port: 443
      # certificate: /your/certificate/path
      # private_key: /your/private/key/path
    # 修改管理员密码(默认是 Harbor12345,请务必修改!)
    harbor_admin_password: 您的新密码
    # 修改数据存储路径(使用我们之前准备的目录)
    data_volume: /data/harbor

    请特别注意:因为我们是测试或内网环境,这里暂时注释掉 HTTPS 配置。生产环境务必配置证书启用 HTTPS。

3.3 安装并启动 Harbor

# 创建数据目录
sudo mkdir -p /data/harbor
# 执行安装脚本(这会自动拉取镜像并启动所有 Harbor 服务)
sudo ./install.sh

安装完成后,您可以通过浏览器访问 http://您的服务器IP,使用用户名 admin 和您刚才设置的密码登录 Harbor 的 Web 管理界面。

第四步:将旧镜像迁移到 Harbor

由于 Harbor 2.x 版本有自己的元数据管理机制,不能通过简单地覆盖存储目录来迁移。推荐使用最高效的工具:skopeo

4.1 安装 skopeo

# Ubuntu 18.04 可以直接从官方源安装
sudo apt-get update
sudo apt-get install -y skopeo

4.2 执行镜像迁移

skopeo 可以在不同仓库间直接复制镜像,而无需在本地磁盘解压和重新压缩镜像层,速度极快。

首先,在 Harbor 的 Web 界面中,为您旧的镜像项目创建对应的项目(Project)。例如,如果您旧仓库中有一个镜像叫 localhost:5000/myav1,那么您需要在 Harbor 中创建一个名为 myapp 的项目。

然后,使用 skopeo copy 命令进行迁移:

# 命令格式:
# skopeo copy --src-tls-verify=false --dest-tls-verify=false \
#   docker://旧仓库地址/项目名/镜像名:标签 \
#   docker://Harbor地址/项目名/镜像名:标签
# 示例:将之前测试用的 hello-world 镜像迁移到 Harbor
# 请将 192.168.1.100 替换为您的实际服务器IP
skopeo copy --src-tls-verify=false --dest-tls-verify=false \
  docker://localhost:5000/hello-world:test \
  docker://192.168.1.100/library/hello-world:test

提示:您可以通过脚本批量处理所有镜像。先通过 curl http://localhost:5000/v2/_catalog 获取镜像列表,然后写一个循环脚本逐个迁移。

第五步:配置 Docker 客户端并验证

修改您本机和所有需要访问新仓库的客户端的 Docker 配置,将新 Harbor 地址也加入 insecure-registries 列表。

# 编辑 Docker 配置文件
sudo vim /etc/docker/daemon.json

确保文件内容如下:

{
  "insecure-registries": ["您的服务器IP:5000", "您的服务器IP"]
}

重启 Docker:

sudo systemctl restart docker

现在,您可以登录新的 Harbor 并进行验证:

# 登录 Harbor (输入您设置的 admin 密码)
docker login 您的服务器IP
# 拉取刚才迁移的镜像进行测试
docker pull 您的服务器IP/library/hello-world:test
# 运行测试
docker run --rm 您的服务器IP/library/hello-world:test

通过以上步骤,您就成功地从单机的 Docker Registry 迁移到了企业级的 Harbor 仓库。如果在这个过程中遇到任何问题,例如配置文件修改或镜像迁移脚本编写,随时可以再问我。

到此这篇关于Docker Registry升级部署Harbor的实现步骤的文章就介绍到这了,更多相关Docker Registry升级部署Harbor内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文