在CentOS 7上高效部署Harbor镜像仓库指南

在 CentOS 7 上安装部署 Harbor 镜像仓库

一、引言

随着容器化技术的普及,Docker 镜像管理成为企业 DevOps 流程中的关键环节。Harbor 作为 VMware 开源的企业级私有镜像仓库,提供了权限控制、镜像复制、漏洞扫描等核心功能,尤其适合对安全性要求较高的生产环境。本文将详细阐述在 CentOS 7 系统上从零开始部署 Harbor 的完整流程,帮助开发者快速构建稳定的镜像管理平台。

二、环境准备与前置条件

2.1 系统要求

  • 操作系统:CentOS 7.6+(推荐最小化安装)
  • 硬件配置
    • CPU:2核以上(生产环境建议4核)
    • 内存:4GB以上(生产环境建议8GB)
    • 磁盘空间:根据镜像存储需求配置(建议SSD)
  • 网络要求
    • 开放80(HTTP)、443(HTTPS)、22(SSH)端口
    • 若需Notary服务需开放4443端口

2.2 依赖安装

  1. # 安装基础开发工具
  2. yum install -y wget curl git vim net-tools
  3. # 安装Docker CE(需先配置yum仓库)
  4. sudo yum install -y yum-utils
  5. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  6. sudo yum install -y docker-ce docker-ce-cli containerd.io
  7. # 启动Docker并设置开机自启
  8. systemctl enable --now docker
  9. # 验证Docker安装
  10. docker run hello-world

2.3 防火墙配置

  1. # 开放必要端口(根据实际协议选择)
  2. firewall-cmd --permanent --add-service=http
  3. firewall-cmd --permanent --add-service=https
  4. firewall-cmd --reload

三、Harbor核心组件安装

3.1 下载安装包

从官方GitHub Release页面获取最新版本(本文以v2.9.0为例):

  1. wget https://github.com/goharbor/harbor/releases/download/v2.9.0/harbor-online-installer-v2.9.0.tgz
  2. tar xvf harbor-online-installer-v2.9.0.tgz
  3. cd harbor

3.2 配置文件修改

编辑harbor.yml.tmpl文件(安装前需重命名为harbor.yml):

  1. hostname: harbor.example.com # 修改为实际域名或IP
  2. http:
  3. port: 80
  4. https:
  5. port: 443
  6. certificate: /data/cert/server.crt # HTTPS证书路径
  7. private_key: /data/cert/server.key
  8. harbor_admin_password: Harbor12345 # 初始管理员密码
  9. database:
  10. password: root123
  11. max_idle_conns: 50
  12. max_open_conns: 100

关键配置说明

  1. hostname:必须为可解析的域名或IP,生产环境建议配置DNS
  2. 存储驱动:支持filesystem(默认)、s3azure
  3. 数据持久化/data目录需单独挂载高可用存储

3.3 安装执行

  1. # 生成配置文件
  2. cp harbor.yml.tmpl harbor.yml
  3. # 执行安装(需root权限)
  4. sudo ./install.sh

安装过程会自动完成以下操作:

  1. 下载所需Docker镜像(harbor-core、harbor-db等)
  2. 初始化数据库
  3. 启动所有容器组件

四、安装后验证与配置

4.1 服务状态检查

  1. docker-compose ps # 查看容器状态
  2. curl -I http://localhost # 测试基础访问

正常应返回HTTP/1.1 200 OK,且所有容器显示Up状态。

4.2 客户端配置

在需要推送镜像的机器上配置/etc/docker/daemon.json

  1. {
  2. "insecure-registries": ["harbor.example.com"] # 若使用HTTP协议
  3. }

重启Docker服务后验证:

  1. docker login harbor.example.com
  2. # 输入用户名admin和配置的密码

4.3 高级配置建议

  1. 日志轮转:配置/etc/logrotate.d/harbor防止日志文件过大
  2. 备份策略:定期备份/data目录和数据库
  3. 性能调优
    • 调整harbor.yml中的_ELASTICSEARCH_MAX_RESULTS参数
    • 优化PostgreSQL配置(shared_buffers等)

五、常见问题解决方案

5.1 端口冲突处理

若80/443端口被占用:

  1. # 查找占用进程
  2. netstat -tulnp | grep :80
  3. # 修改Harbor配置使用其他端口
  4. vim harbor.yml
  5. http:
  6. port: 8080

5.2 证书配置错误

生成自签名证书示例:

  1. mkdir -p /data/cert
  2. openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  3. -keyout /data/cert/server.key -out /data/cert/server.crt \
  4. -subj "/CN=harbor.example.com"

5.3 存储空间不足

扩展存储的两种方式:

  1. LVM扩展
    1. vgextend centos /dev/sdb
    2. lvextend -L +100G /dev/centos/root
    3. resize2fs /dev/centos/root
  2. 添加存储卷:修改docker-compose.yml中的volumes配置

六、生产环境最佳实践

  1. 高可用架构
    • 使用Keepalived+HAProxy实现负载均衡
    • 数据库配置主从复制
  2. 安全加固
    • 启用Harbor的Clair漏洞扫描
    • 配置LDAP集成实现集中认证
  3. 监控方案
    • 部署Prometheus+Grafana监控指标
    • 配置Alertmanager告警规则

七、总结

通过本文的详细步骤,开发者可以在CentOS 7系统上快速完成Harbor镜像仓库的部署。关键成功要素包括:精确的环境准备、合理的资源配置、严谨的配置文件校验以及完善的灾备方案。建议定期检查Harbor官方文档获取最新安全补丁,并考虑结合Kubernetes Operator实现更灵活的运维管理。

附:Harbor官方文档链接:https://goharbor.io/docs/

完整安装包下载:Harbor Releases