简介:本文详细阐述私有镜像仓库Harbor的安装流程与核心配置方法,涵盖环境准备、证书配置、组件部署及安全优化等关键环节,为企业级容器镜像管理提供可落地的技术方案。
在容器化技术普及的今天,企业对于镜像管理的安全性、可控性和效率提出了更高要求。Harbor作为CNCF(云原生计算基金会)毕业项目,通过提供基于角色的访问控制(RBAC)、镜像复制、漏洞扫描等企业级功能,成为构建私有镜像仓库的首选方案。其典型应用场景包括:
| 组件 | 最小配置 | 推荐配置 |
|---|---|---|
| CPU | 2核 | 4核(生产环境) |
| 内存 | 4GB | 8GB(支持100+用户) |
| 存储 | 40GB(SSD) | 100GB+(NVMe) |
| 网络带宽 | 100Mbps | 1Gbps(高并发场景) |
# 验证Docker版本(需19.03+)docker --version# 检查Docker Compose(需1.25+)docker-compose --version# 确认系统时间同步(NTP服务)timedatectl status | grep "NTP synchronized"
推荐使用Let’s Encrypt免费证书或企业CA签发的证书:
# 生成私钥(RSA 2048位)openssl genrsa -out harbor.key 2048# 生成证书请求(需填写CN=域名)openssl req -new -key harbor.key -out harbor.csr# 签发证书(示例为自签名证书)openssl x509 -req -days 3650 -in harbor.csr -signkey harbor.key -out harbor.crt
harbor/├── common/ # 共享配置文件├── install.sh # 安装脚本├── prepare # 准备脚本└── harbor.yml.tmpl # 配置模板
修改harbor.yml关键参数:
# 生成实际配置文件./prepare# 启动服务(后台运行)./install.sh --with-trivy --with-chartmuseum
LDAP集成配置:
# 在harbor.yml中添加auth_mode: ldapldap:url: ldap://ldap.example.comsearch_dn: cn=admin,dc=example,dc=comsearch_password: ldap123base_dn: dc=example,dc=comuid: uidfilter: (objectClass=person)
RBAC策略示例:
配置跨数据中心镜像同步:
{"name": "dc-beijing-to-shanghai","src_registry": {"url": "https://registry.beijing.example.com","insecure": false},"dest_registry": {"url": "https://registry.shanghai.example.com","insecure": false},"dest_namespace": "library","trigger": {"type": "immediate","schedule": null},"filters": [{"type": "name","pattern": "^library/.*"}]}
启用Trivy扫描器:
# 在harbor.yml中启用trivy:ignore_unfixed: falseskip_update: falseinsecure: falseseverity: 'CRITICAL,HIGH'debug_mode: false
推荐采用以下部署模式:
# 调整Docker守护进程配置echo '{"max-concurrent-uploads": 10}' > /etc/docker/daemon.json# 优化Harbor数据库连接池# 在harbor.yml中修改database:max_idle_conns: 50max_open_conns: 100
Prometheus配置:
# 添加到prometheus.ymlscrape_configs:- job_name: 'harbor'static_configs:- targets: ['harbor-core:8000']
关键监控指标:
harbor_project_count:项目总数harbor_artifact_pull_total:镜像拉取次数harbor_scan_job_duration_seconds:扫描耗时
# 检查证书有效期openssl x509 -noout -dates -in harbor.crt# 验证证书链完整性openssl verify -CAfile ca.crt harbor.crt
备份现有数据:
docker exec -it harbor-db pg_dump -U postgres -d registry > backup.sql
恢复数据到新实例:
docker exec -i harbor-new-db psql -U postgres -d registry < backup.sql
./prepare --check-upgrade
<项目>/<镜像>:<标签>格式latest标签仅用于开发环境garbage-collect命令通过系统化的安装配置和持续优化,Harbor可为企业提供安全、高效的镜像管理服务。建议每季度进行安全审计和性能评估,确保系统始终处于最佳运行状态。