Harbor是一个用于存储、签名和扫描Docker镜像的企业级Registry服务器

harbor

Harbor是一个用于存储、签名和扫描Docker镜像的企业级Registry服务器,由VMware公司开发并于2016年开源 。Harbor 提供了管理界面,基于角色的访问控制(Role Based Access Control, RBAC),AD/LDAP 集成,审计日志等功能,以满足企业级用户的需求,并且原生支持中文 。

架构 alt text

Harbor 的架构清晰,主要组件包括:

  • Proxy:Nginx前端代理,负责分发前端页面UI访问和镜像上传下载流量。
  • AdminServer/core:系统的配置管理中心,附带检查存储用量

最新架构,ui/token/webhook集成在core中

  • UI:提供Web管理页面以及前后端API,底层使用MySQL/postgresql数据库。
  • Registry:负责存储镜像文件,通过hook通知UI创建 repository。
  • JobService:负责镜像复制工作,记录job_log。
  • Log:日志汇总组件,通过 Docker 的 log-driver 汇总日志 。

Harbor 的安装部署可以在线或离线进行,需要Docker和Docker Compose。安装过程包括下载安装程序、配置 harbor.yml 文件以及运行 install.sh 脚本 。

Harbor 的特点包括:

  • 镜像仓库作为镜像的分发媒介,实现管理和访问控制机制。

  • 支持多种用户系统,包括内嵌数据库用户系统和 AD/LDAP 系统。

  • 提供项目级别的缓存机制和 P2P 网络加速内容分发。

  • 引入 Notary 框架实现镜像制品签名机制,支持旧式 Helm V2 chart 签名。

  • 支持镜像制品的漏洞扫描,通过插件式方式对接不同扫描引擎。

  • 提供不可变 tag 机制和垃圾回收能力,优化资源管理。

  • 支持 RESTful API,便于与其他管理软件集成 。

Harbor2.0版本开始支持OCI标准,可以管理符合OCI 规范的多种制品,如 Helm Chart、CNAB、OPA Bundle 等,并允许对镜像和清单列表进行签名 。Harbor 的整体架构从上到下分为代理层、功能层和数据层,提供了全面的企业级容器镜像管理解决方案 。