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

 更新时间:2026年04月29日 09:50:23   作者: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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker 安装 MySQL(8和5.7)

    Docker 安装 MySQL(8和5.7)

    这篇文章主要介绍了Docker 安装 MySQL(8和5.7),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 在Docker中更快地构建Maven项目

    在Docker中更快地构建Maven项目

    本文主要介绍了在Docker中更快地构建Maven项目,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Docker容器导致磁盘空间不足无法访问的解决方法

    Docker容器导致磁盘空间不足无法访问的解决方法

    本文主要介绍了Docker容器导致磁盘空间不足无法访问的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Docker-compose多服务使用详解

    Docker-compose多服务使用详解

    文章概述了部署多服务的流程:创建文件夹、上传并解压文件,删除旧容器,修正文件名,添加执行权限后运行脚本,最终启动多个服务
    2025-08-08
  • 使用Docker快速搭建Redis主从复制的完整步骤

    使用Docker快速搭建Redis主从复制的完整步骤

    在现代应用程序中,Redis凭借其高性能和简便的数据结构被广泛使用,为了提高数据的可用性和可靠性,很多时候我们需要在Redis中配置主从架构,这篇文章主要介绍了使用Docker快速搭建Redis主从复制的完整步骤,需要的朋友可以参考下
    2026-01-01
  • Docker 安装 Neo4j 保姆级教程(最新整理)

    Docker 安装 Neo4j 保姆级教程(最新整理)

    本文详细介绍了如何在Windows和Linux环境下通过Docker安装和配置 Neo4j图数据库,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-10-10
  • Docker容器的导入导出操作教程

    Docker容器的导入导出操作教程

    这篇文章主要给大家介绍了关于Docker容器的导入导出操作的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Docker具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Docker Compose安装部署PostgreSQL数据库的实现步骤

    Docker Compose安装部署PostgreSQL数据库的实现步骤

    本文主要介绍了使用DockerCompose在Linux服务器上部署PostgreSQL,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • 使用Dockerfile创建镜像过程

    使用Dockerfile创建镜像过程

    本文介绍Docker安装及镜像分类,详解Dockerfile指令如FROM、RUN、CMD等,涵盖制作镜像步骤与优化技巧,如减少分层和清理数据,适用于自定义镜像构建实践
    2025-07-07
  • docker部署code-server的方法

    docker部署code-server的方法

    这篇文章主要介绍了docker部署code-server的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09

最新评论