- A+
Harbor 简介
Harbor 是由 VMware 开源的企业级 Docker Registry 管理项目,它以 Docker 官方 Registry 为基础,提供了权限管理(RBAC)、LDAP 集成、日志审计、图形化界面、镜像复制等企业级功能。相比原生 Registry,Harbor 更适合在生产环境中管理私有镜像仓库,尤其适合需要严格权限控制和安全审计的企业场景。
Harbor 的核心功能
权限管理(RBAC)
- 支持基于角色的访问控制(Role-Based Access Control),可定义用户、用户组,并分配不同权限(如只读、推送镜像、删除镜像等)。
- 适合团队或企业内部分级管理镜像。
安全审计
- 记录所有镜像操作日志(如拉取、推送、删除),便于追踪和合规审查。
- 支持与 LDAP/AD 集成,实现统一身份认证。
镜像漏洞扫描
- 内置 Trivy 漏洞扫描工具,自动检测镜像中的安全漏洞(如 CVE 漏洞)。
- 阻止高风险镜像被推送或拉取。
镜像复制与同步
- 支持多 Harbor 实例之间的镜像同步(如跨数据中心、跨云同步)。
- 可配置定时同步策略,保证镜像高可用。
图形化管理界面
- 提供 Web 界面,直观管理项目、用户、镜像、日志等。
- 无需命令行即可完成大部分操作。
扩展性
- 支持插件化扩展(如自定义认证、通知系统)。
- 可与 CI/CD 工具(如 Jenkins、GitLab CI)集成,实现自动化镜像构建和推送。
Harbor 的架构组成
Harbor 由多个核心组件构成,通过 Docker Compose 部署:
- Core Service:处理 API 请求,管理用户、项目、镜像元数据。
- Registry:基于 Docker Registry,实际存储镜像文件。
- Database:存储 Harbor 的元数据(如用户、权限、日志)。
- Job Service:执行后台任务(如镜像扫描、复制)。
- UI:提供 Web 界面。
- Proxy:反向代理(Nginx),处理 HTTPS 和负载均衡。
- Trivy Adapter:漏洞扫描服务(可选)。
Harbor 与原生 Docker Registry 的区别
功能 | 原生 Docker Registry | Harbor |
---|---|---|
权限管理 | 仅支持基础认证(无 RBAC) | 细粒度 RBAC 权限控制 |
安全审计 | 无日志记录 | 完整操作日志,支持导出分析 |
漏洞扫描 | 不支持 | 内置 Trivy 扫描,自动拦截风险镜像 |
图形界面 | 无 | 提供 Web 管理界面 |
镜像复制 | 需手动配置 | 支持多实例自动同步 |
企业级支持 | 适合个人/测试 | 适合生产环境,支持高可用部署 |
下载 Harbor 安装包
wget https://github.com/goharbor/harbor/releases/download/v2.9.0/harbor-offline-installer-v2.9.0.tgz
tar -zxvf harbor-offline-installer-v2.9.0.tgz -C /usr/local/
cd /usr/local/harbor
配置 Harbor
修改harbor.yml
文件
vim harbor.yml
hostname: xxx.com
#https:
# https port for harbor, default is 443
# port: 443
# The path of cert and key files for nginx
# certificate: /your/certificate/path //SSL 公钥证书文件路径
# private_key: /your/private/key/path //SSL 私钥文件路径
harbor_admin_password: xxx.com //设置管理员密码
data_volume: /data/harbor //数据目录
加载并处理配置,执行安装脚本
./prepare
./install.sh
创建 systemd 服务文件
tee /usr/lib/systemd/system/harbor.service << EOF
[Unit]
Description=Harbor Docker Registry
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
[Service]
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/bin/docker compose -f /usr/local/harbor/docker-compose.yml up
ExecStop=/usr/bin/docker compose -f /usr/local/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
EOF
启动并启用服务
sudo systemctl daemon-reload
sudo systemctl start harbor.service
sudo systemctl enable harbor.service
访问web界面
管理员密码:默认账号admin
,可改密码为harbor_admin_password: xxx.com
。
