Docker镜像仓库Harbor安装部署全攻略

Docker镜像仓库Harbor安装部署详细教程

引言

在容器化技术蓬勃发展的今天,Docker镜像管理已成为企业DevOps流程中的关键环节。Harbor作为由VMware开源的企业级私有镜像仓库解决方案,凭借其安全控制、镜像复制、RBAC权限管理等特性,成为众多开发团队的首选。本文将系统阐述Harbor的安装部署全流程,帮助读者快速构建稳定可靠的私有镜像仓库。

一、环境准备与前置条件

1.1 硬件资源要求

  • 基础配置:建议4核CPU、8GB内存、100GB存储空间(生产环境需根据实际负载调整)
  • 存储类型:推荐使用SSD或高性能HDD,避免使用网络存储导致I/O瓶颈
  • 网络拓扑:需确保Harbor服务器可访问Docker客户端及目标节点

1.2 软件依赖检查

  • 操作系统:CentOS 7/8、Ubuntu 18.04/20.04等主流Linux发行版
  • Docker版本:≥19.03(推荐使用稳定版)
  • 依赖包curl wget git等基础工具

1.3 域名与证书配置

  • 域名规划:建议使用二级域名(如harbor.example.com
  • SSL证书
    • 生产环境必须配置有效证书(Let’s Encrypt免费证书或商业证书)
    • 自签名证书需在客户端配置信任

二、Harbor安装核心步骤

2.1 下载安装包

  1. # 获取最新稳定版(示例为2.5.0版本)
  2. wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-online-installer-v2.5.0.tgz
  3. tar xvf harbor-online-installer-v2.5.0.tgz
  4. cd harbor

2.2 配置文件修改

编辑harbor.yml核心配置项:

  1. hostname: harbor.example.com # 必须与证书CN一致
  2. http:
  3. port: 80
  4. https:
  5. port: 443
  6. certificate: /data/cert/harbor.crt
  7. private_key: /data/cert/harbor.key
  8. harbor_admin_password: Harbor12345 # 初始管理员密码
  9. database:
  10. password: root123
  11. max_idle_conns: 50
  12. max_open_conns: 100
  13. storage_driver:
  14. name: filesystem
  15. fs:
  16. rootpath: /data/registry

2.3 安装与启动

  1. # 执行安装脚本(需提前安装Docker和Docker Compose)
  2. ./install.sh
  3. # 验证服务状态
  4. docker-compose ps
  5. # 正常应显示所有容器状态为Up

三、高级配置与优化

3.1 存储后端配置

  • 对象存储集成
    1. storage_driver:
    2. name: s3
    3. s3:
    4. accesskey: your-access-key
    5. secretkey: your-secret-key
    6. region: us-west-1
    7. bucket: harbor-registry
    8. regionendpoint: https://s3.us-west-1.amazonaws.com
  • NFS存储方案
    1. # 在NFS服务器创建共享目录
    2. mkdir /export/harbor
    3. # 客户端挂载
    4. mount -t nfs 192.168.1.100:/export/harbor /data/registry

3.2 复制策略配置

  1. 进入Web控制台→系统管理→复制管理
  2. 创建复制规则示例:
    • 名称:prod-to-dev
    • 源项目:library
    • 目标URL:https://dev-harbor.example.com
    • 触发模式:事件驱动+定时同步

3.3 性能调优参数

  • 数据库优化
    1. database:
    2. max_idle_conns: 100
    3. max_open_conns: 200
    4. sql_max_open_conns: 150
  • JVM参数调整
    1. # 修改core/docker-compose.yml中jobservice的JVM_OPTS
    2. environment:
    3. - JVM_OPTS=-Xms512m -Xmx1024m

四、日常运维管理

4.1 备份恢复策略

  1. # 完整备份(包含数据库和配置)
  2. ./prepare.sh --backup --backup-path=/backup/harbor_backup_$(date +%Y%m%d)
  3. # 恢复流程
  4. 1. 停止服务:docker-compose down
  5. 2. 清理数据目录(保留/data/cert
  6. 3. 执行恢复:./install.sh --with-clair --with-notary --backup /backup/path

4.2 日志分析技巧

  • 关键日志路径
    • /var/log/harbor/:核心服务日志
    • /var/log/registry/:镜像存储日志
    • /var/log/nginx/:访问日志
  • 日志轮转配置
    1. # 编辑/etc/logrotate.d/harbor
    2. /var/log/harbor/*.log {
    3. daily
    4. rotate 7
    5. compress
    6. missingok
    7. notifempty
    8. copytruncate
    9. }

4.3 升级指南

  1. # 1. 备份当前环境
  2. ./prepare.sh --backup
  3. # 2. 下载新版本并替换
  4. wget new_version.tgz
  5. tar xvf new_version.tgz -C /opt --strip-components=1
  6. # 3. 执行升级
  7. cd /opt/harbor
  8. ./upgrade.sh --insecure # 测试环境使用,生产环境需配置证书

五、安全加固建议

5.1 网络隔离方案

  • 防火墙规则
    1. # 只允许管理网段访问
    2. iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 443 -j ACCEPT
    3. iptables -A INPUT -p tcp --dport 443 -j DROP
  • VPC对等连接:跨区域部署时使用私有网络互联

5.2 镜像扫描配置

  1. 启用Clair扫描器:
    1. # harbor.yml中启用
    2. clair:
    3. enabled: true
    4. http_proxy:
    5. https_proxy:
  2. 设置扫描策略:
    • 每日定时扫描
    • 严重漏洞自动阻止推送

5.3 审计日志配置

  1. # 启用详细审计
  2. audit:
  3. enabled: true
  4. log_path: /var/log/harbor/audit.log
  5. forward_to_syslog: false

六、故障排查指南

6.1 常见问题处理

问题现象 可能原因 解决方案
502 Bad Gateway Nginx配置错误 检查/etc/nginx/nginx.conf中proxy_pass配置
登录失败 数据库连接问题 检查/var/log/harbor/core.log中的SQL错误
镜像推送慢 存储I/O瓶颈 使用iostat -x 1监控磁盘性能

6.2 诊断命令集

  1. # 检查服务状态
  2. docker-compose ps
  3. docker inspect harbor-core
  4. # 网络诊断
  5. curl -v https://harbor.example.com/api/v2.0/health
  6. # 性能监控
  7. docker stats
  8. top -p $(pgrep -f harbor)

七、最佳实践总结

  1. 高可用架构:建议部署3节点集群,使用共享存储和负载均衡
  2. 镜像生命周期:设置自动清理策略(如保留最近3个版本)
  3. CI/CD集成:在Jenkins/GitLab中配置Harbor作为可信镜像源
  4. 监控告警:集成Prometheus+Grafana监控关键指标(存储使用率、请求延迟)

结语

通过本文的系统指导,读者已掌握Harbor从环境准备到高级运维的全流程知识。实际部署时,建议先在测试环境验证配置,再逐步迁移到生产环境。随着容器技术的演进,Harbor也在持续迭代新功能(如支持OCI Artifacts、增强多租户管理等),建议定期关注官方更新日志以获取最新特性。