FEATURED · 精选文章

Harbor私有镜像仓库搭建与运维实战指南

发布时间 / 2026/8/15 5:45:23
来源 / 创域科博编辑部
栏目 / 资讯中心
Harbor私有镜像仓库搭建与运维实战指南 1. Harbor仓库搭建实战指南在企业级容器化部署中私有镜像仓库是基础设施的关键组成部分。Harbor作为CNCF毕业项目已经成为业界最受欢迎的容器镜像仓库解决方案之一。不同于简单的Registry服务Harbor提供了RBAC权限控制、漏洞扫描、镜像复制等企业级功能特别适合需要严格管控镜像分发的生产环境。我在金融和互联网行业的基础架构建设中曾主导过十余次Harbor集群的部署和优化。本文将分享从零开始搭建生产级Harbor仓库的完整流程包含高可用配置、性能调优以及日常运维中的实用技巧。无论你是刚开始接触容器技术还是需要升级现有镜像仓库这份指南都能提供可直接落地的实施方案。2. 环境规划与准备2.1 硬件资源配置建议对于生产环境建议采用以下配置基准测试环境2核CPU/4GB内存/100GB存储支持约500个镜像生产环境4核CPU/8GB内存/500GB存储支持2000镜像高负载环境8核CPU/16GB内存/1TB存储支持5000镜像并开启漏洞扫描重要提示存储空间需要根据镜像层复用率计算。实际需求基础镜像大小 (差异化层 × 项目数量)。例如使用ubuntu:20.04作为基础镜像(72MB)10个项目各自添加50MB差异化层则总需求≈72 (50×10) 572MB2.2 依赖组件安装Harbor需要以下基础组件支持# Docker引擎版本要求18.06 sudo apt-get update sudo apt-get install -y docker.io sudo systemctl enable --now docker # Docker Compose版本要求1.18.0 sudo curl -L https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod x /usr/local/bin/docker-compose2.3 证书配置最佳实践生产环境必须启用HTTPS以下是使用Lets Encrypt的自动化配置示例# 安装certbot工具 sudo apt-get install -y certbot # 申请证书需提前解析域名 sudo certbot certonly --standalone -d harbor.yourdomain.com # 证书转换为Harbor所需格式 sudo mkdir -p /data/cert sudo openssl x509 -inform pem -in /etc/letsencrypt/live/harbor.yourdomain.com/fullchain.pem -out /data/cert/harbor.crt sudo openssl rsa -inform pem -in /etc/letsencrypt/live/harbor.yourdomain.com/privkey.pem -out /data/cert/harbor.key3. Harbor核心部署流程3.1 离线安装包获取从GitHub下载对应版本的离线包wget https://github.com/goharbor/harbor/releases/download/v2.6.0/harbor-offline-installer-v2.6.0.tgz tar xvf harbor-offline-installer-v2.6.0.tgz cd harbor3.2 配置文件定制修改harbor.yml关键参数hostname: harbor.yourdomain.com https: certificate: /data/cert/harbor.crt private_key: /data/cert/harbor.key database: password: StrongPassword123 data_volume: /data/harbor clair: updaters_interval: 12 # 漏洞数据库更新间隔(小时) jobservice: max_job_workers: 10 # 并发任务处理数3.3 执行安装脚本运行安装命令并验证服务状态sudo ./install.sh --with-clair --with-chartmuseum docker-compose ps -a正常情况应看到9个服务容器处于运行状态nginx、portal、core、jobservice等4. 高可用架构实现方案4.1 数据库外部化配置默认的PostgreSQL容器不适合生产环境建议迁移到外部数据库external_database: harbor: host: pg-master.yourdomain.com port: 5432 db_name: harbor username: harbor password: DB_Password_123 ssl_mode: disable4.2 Redis集群集成修改harbor.yml配置Redis哨兵模式redis: host: redis-sentinel.yourdomain.com port: 26379 sentinel_master_set: mymaster password: Redis_Pass_4564.3 存储后端配置对接S3兼容存储的配置示例storage_service: s3: accesskey: AWS_ACCESS_KEY secretkey: AWS_SECRET_KEY region: us-west-1 bucket: harbor-bucket endpoint: https://s3.yourdomain.com secure: true chunksize: 52428805. 日常运维关键操作5.1 备份恢复策略使用官方工具进行定期备份# 创建备份 docker-compose exec -T harbor-db pg_dump -U postgres registry registry_backup.sql # 恢复备份 cat registry_backup.sql | docker-compose exec -T harbor-db psql -U postgres registry5.2 垃圾清理自动化设置定时任务清理孤立Blob# 每周日凌晨2点执行清理 0 2 * * 0 docker exec harbor-jobservice /harbor/harbor_jobservice -c /etc/jobservice/config.yml garbage-collection --delete-untaggedtrue5.3 性能监控指标Prometheus监控关键指标示例- job_name: harbor metrics_path: /metrics static_configs: - targets: [harbor-core:8080] relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: prometheus-server:90906. 安全加固措施6.1 网络访问控制建议的防火墙规则配置# 只允许CI/CD节点访问5000端口 iptables -A INPUT -p tcp --dport 5000 -s 10.10.1.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 5000 -j DROP # 限制管理界面访问 iptables -A INPUT -p tcp --dport 443 -s 192.168.1.100 -j ACCEPT6.2 镜像扫描集成在harbor.yml中启用Trivy扫描器trivy: ignore_unfixed: true skip_update: false security_check: vuln severity: high,critical timeout: 5m6.3 审计日志分析日志收集配置示例ELK Stacklogging: level: info local: rotate_count: 50 rotate_size: 200M tcp: host: logstash.yourdomain.com port: 5044 timeout: 10s7. 常见问题排查指南7.1 上传镜像失败典型错误与解决方案错误现象可能原因解决方法413 Request Entity Too LargeNginx默认限制上传大小修改nginx.conf中client_max_body_size 1024mx509: certificate signed by unknown authority自签名证书未信任将CA证书放入/etc/docker/certs.d/harbor.yourdomain.com/no basic auth credentials未登录或认证失败执行docker login harbor.yourdomain.com7.2 性能优化技巧实测有效的调优参数# 在harbor.yml中添加 core: token_expiration: 30 # 分钟 max_idle_conns: 50 # 数据库连接池 conn_max_lifetime: 10m8. 版本升级注意事项跨大版本升级步骤停止现有服务docker-compose down -v备份数据库和配置文件下载新版本安装包并解压迁移配置到新的harbor.yml执行升级命令sudo ./install.sh --upgrade验证各组件版本docker images | grep goharbor关键提示从v1.x升级到v2.x需要特别注意数据库schema变更建议先在测试环境验证升级流程
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻