一、环境准备与前置条件
1.1 服务器资源规划
- 硬件要求:建议使用2核4G以上配置的Linux服务器(Ubuntu 20.04/CentOS 8),存储空间根据镜像规模预留(如100GB起步)。
- 网络环境:确保服务器有公网IP或内网可访问地址,开放80(HTTP)、443(HTTPS)、22(SSH)及2376(Docker远程管理)端口。
- 域名配置:为Harbor配置独立域名(如
harbor.example.com),并申请SSL证书(Let’s Encrypt免费证书或企业级证书)。
1.2 依赖软件安装
# 安装Docker(Ubuntu示例)sudo apt updatesudo apt install -y docker.iosudo systemctl enable --now docker# 安装Docker Compose(v2.0+)sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose
二、Harbor私有仓库安装与配置
2.1 Harbor安装包获取
从Harbor官方GitHub下载最新稳定版(如v2.9.0),选择harbor-offline-installer-v2.9.0.tgz离线包。
2.2 配置文件修改
解压后编辑harbor.yml.tmpl,关键配置项:
hostname: harbor.example.com # 必须与域名一致http:port: 80https:certificate: /path/to/your/cert.pemprivate_key: /path/to/your/key.pemharbor_admin_password: Harbor12345 # 初始管理员密码database:password: root123 # 数据库密码storage_driver:name: filesystem # 存储驱动(可选S3/Azure等)filesystem:rootdir: /data
2.3 安装执行
# 生成配置文件cp harbor.yml.tmpl harbor.yml# 执行安装(需提前安装Docker Compose)sudo ./install.sh
安装完成后,访问https://harbor.example.com,使用默认账号admin和配置的密码登录。
三、Docker客户端集成Harbor
3.1 配置Docker信任证书
将Harbor的CA证书(如ca.crt)复制到Docker证书目录:
sudo mkdir -p /etc/docker/certs.d/harbor.example.comsudo cp ca.crt /etc/docker/certs.d/harbor.example.com/sudo systemctl restart docker
3.2 登录Harbor仓库
docker login harbor.example.com# 输入用户名(admin或项目成员账号)和密码
3.3 镜像标记与推送
# 标记本地镜像(以nginx为例)docker tag nginx:latest harbor.example.com/library/nginx:v1# 推送镜像docker push harbor.example.com/library/nginx:v1
四、Harbor高级功能实战
4.1 项目与用户管理
- 创建项目:在Harbor Web界面新建项目(如
dev-team),设置公开/私有权限。 - 添加用户:通过“用户管理”创建账号,分配至项目(开发者/访客角色)。
- 机器人账号:为CI/CD流水线创建机器人账号,生成长期有效的Token。
4.2 镜像复制策略
配置跨仓库镜像同步(如从Harbor A复制到Harbor B):
- 在“系统管理”→“仓库管理”添加目标仓库。
- 创建复制规则,指定源项目、目标仓库及触发方式(手动/定时)。
4.3 漏洞扫描与策略
- 启用Trivy扫描:在
harbor.yml中配置trivy:项,重启Harbor。 - 设置拦截策略:对高风险漏洞镜像自动阻止推送。
五、故障排查与优化
5.1 常见问题
- 证书错误:检查
/etc/docker/certs.d/下域名与证书匹配性。 - 推送403错误:确认用户有项目写入权限,镜像标签格式正确。
- Harbor启动失败:查看
/var/log/harbor/日志,检查数据库连接或存储权限。
5.2 性能优化
- 存储扩展:使用对象存储(如MinIO)替代本地文件系统。
- 数据库调优:修改
harbor.yml中postgresql的max_connections参数。 - 负载均衡:部署Nginx反向代理,实现Harbor组件高可用。
六、企业级实践建议
- 权限最小化:按团队划分项目,禁用
admin账号日常使用。 - 镜像签名:结合Notary实现镜像内容信任(DCT)。
- 备份策略:定期备份Harbor数据库(
/data/database)和配置文件。 - 监控集成:通过Prometheus+Grafana监控仓库使用率、推送频率等指标。
通过本文的详细步骤,开发者可快速完成Docker与Harbor私有仓库的搭建,并掌握镜像推送、权限管理等核心操作。Harbor不仅解决了镜像安全存储问题,其丰富的企业级功能(如漏洞扫描、复制策略)更能满足DevOps全流程需求。实际部署时,建议结合企业安全规范调整配置,并定期进行压力测试与灾备演练。