基于Registry的Harbor镜像仓库部署全攻略

基于Registry的Harbor镜像仓库部署全攻略

在容器化技术日益普及的今天,构建高效、安全的私有镜像仓库成为众多开发者和企业的迫切需求。Harbor,作为一款开源的企业级Registry解决方案,不仅提供了强大的镜像管理功能,还集成了权限控制、镜像复制、漏洞扫描等高级特性,极大地提升了镜像仓库的安全性和可用性。本文将详细阐述如何基于Registry部署Harbor镜像仓库,从环境准备到实际使用,为开发者提供一套完整的操作指南。

一、Harbor简介

Harbor是由VMware公司开源的一个企业级Registry服务器,它扩展了Docker Distribution的功能,增加了用户权限管理、AD/LDAP集成、镜像复制、漏洞扫描、审计日志等企业级功能。Harbor的核心组件包括:

  • UI:提供Web界面,方便用户管理镜像。
  • Proxy:作为反向代理,处理所有到Harbor的请求。
  • Registry:存储镜像的核心服务,基于Docker官方Registry。
  • Core Services:包括认证服务、策略引擎、复制控制器等,负责Harbor的核心逻辑。
  • Database:存储Harbor的元数据,如用户信息、项目信息等。
  • Log Collector:收集并存储Harbor的运行日志。

二、部署前准备

1. 硬件要求

  • CPU:至少2核,推荐4核及以上。
  • 内存:至少4GB,推荐8GB及以上。
  • 磁盘空间:根据存储镜像的数量和大小决定,建议至少100GB。
  • 网络:确保服务器有稳定的网络连接,以便进行镜像的上传和下载。

2. 软件依赖

  • 操作系统:推荐使用CentOS 7/8或Ubuntu 18.04/20.04。
  • Docker:Harbor运行在Docker容器中,需提前安装Docker。
  • Docker Compose:Harbor使用Docker Compose进行部署,需安装Docker Compose。
  • HTTPS证书(可选):如需启用HTTPS,需准备SSL证书。

3. 下载Harbor

从Harbor的GitHub仓库(https://github.com/goharbor/harbor/releases)下载最新版本的Harbor安装包。

三、安装与配置

1. 解压安装包

  1. tar xvf harbor-online-installer-v2.x.x.tgz
  2. cd harbor

2. 配置Harbor

编辑harbor.yml文件,主要配置项包括:

  • hostname:设置Harbor的主机名或IP地址。
  • https:如需启用HTTPS,设置https.porthttps.certificatehttps.private_key
  • harbor_admin_password:设置Harbor管理员密码。
  • database:配置数据库密码(如使用外部数据库)。
  • data_volume:设置Harbor存储镜像的数据目录。

示例配置片段:

  1. hostname: 192.168.1.100
  2. https:
  3. port: 443
  4. certificate: /path/to/your/certificate.pem
  5. private_key: /path/to/your/private_key.pem
  6. harbor_admin_password: Harbor12345
  7. database:
  8. password: root123
  9. data_volume: /data/harbor

3. 安装Harbor

执行以下命令开始安装:

  1. ./install.sh

安装过程中,脚本会自动下载所需的Docker镜像,并启动Harbor的各个容器。

4. 验证安装

安装完成后,访问Harbor的Web界面(http://或https://你的主机名或IP地址),使用默认管理员账号(admin)和设置的密码登录,验证Harbor是否正常运行。

四、使用Harbor

1. 推送镜像到Harbor

首先,需要在本地Docker环境中配置对Harbor的信任(如果使用HTTPS且证书不是受信任的CA签发的):

  1. # 对于Linux系统,编辑或创建/etc/docker/daemon.json文件,添加以下内容:
  2. {
  3. "insecure-registries" : ["192.168.1.100"] # 如果使用HTTPS且自签名证书,或使用HTTP
  4. # 或者对于HTTPS且证书有效的情况,不需要此配置,但需确保证书在系统的信任链中
  5. }
  6. # 然后重启Docker服务
  7. systemctl restart docker

接着,登录Harbor:

  1. docker login 192.168.1.100

输入用户名和密码后,即可推送镜像:

  1. docker tag your-image:tag 192.168.1.100/your-project/your-image:tag
  2. docker push 192.168.1.100/your-project/your-image:tag

2. 从Harbor拉取镜像

  1. docker pull 192.168.1.100/your-project/your-image:tag

五、运维建议

  • 定期备份:备份Harbor的数据库和配置文件,以防数据丢失。
  • 监控与日志:利用Harbor提供的日志和监控功能,及时发现并解决问题。
  • 安全加固:定期更新Harbor和Docker到最新版本,修复已知的安全漏洞。
  • 性能优化:根据实际使用情况,调整Harbor的资源配置,如内存、CPU限制等。
  • 多节点部署:对于大规模使用场景,考虑使用Harbor的复制功能,实现多节点间的镜像同步,提高可用性和性能。

六、结语

通过上述步骤,开发者可以轻松地部署并管理一个基于Registry的Harbor镜像仓库。Harbor不仅提供了基本的镜像存储功能,还通过丰富的企业级特性,帮助用户构建安全、高效的镜像管理体系。随着容器化技术的不断发展,Harbor将成为开发者不可或缺的工具之一。希望本文能为开发者在部署和使用Harbor过程中提供有益的参考和指导。