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
下载离线安装包:
访问 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
修改配置文件:
复制配置文件模板并进行修改。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 Compose安装部署PostgreSQL数据库的实现步骤
本文主要介绍了使用DockerCompose在Linux服务器上部署PostgreSQL,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-12-12


最新评论