Linux部署 Harbor 私有镜像仓库

  • A+
所属分类:Docker 云原生

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 RegistryHarbor
权限管理仅支持基础认证(无 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

 Linux部署 Harbor 私有镜像仓库
xxx