一 . 简介

Harbor是VMware公司开源的企业级DockerRegistry项目,项目地址为https://github.com/vmware/harbor。其目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。它以Docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control)AD/LDAP集成以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。Harbor的每个组件都是以Docker容器的形式构建的,使用Docker Compose来对它进行部署。

用于部署Harbor的Docker Compose模板位于 /Deployer/docker-compose.yml,由5个容器组成:

  1. Proxy:由Nginx 服务器构成的反向代理。
  2. Registry:由Docker官方的开源registry镜像构成的容器实例。
  3. UI:即架构中的core services, 构成此容器的代码是Harbor项目的主体。
  4. MySQL:由官方MySQL镜像构成的数据库容器。
  5. Log:运行着rsyslogd的容器,通过log-driver的形式收集其他容器的日志。

这几个容器通过Docker link的形式连接在一起,在容器之间通过容器名字互相访问。对终端用户而言,只需要暴露proxy (即Nginx)的服务端口。

二. Harbor特性

基于角色控制

用户和仓库都是基于项目进行组织的, 而用户基于项目可以拥有不同的权限。

基于镜像的复制策略

镜像可以在多个Harbor实例之间进行复制。

支持LDAP

Harbor的用户授权可以使用已经存在LDAP用户。

镜像删除 & 垃圾回收

Image可以被删除并且回收Image占用的空间。

用户UI

用户可以轻松的浏览、搜索镜像仓库以及对项目进行管理。

镜像删除 & 垃圾回收

绝大部分的用户操作API, 方便用户对系统进行扩展。

轻松的部署功能

Harbor提供了online、offline安装,除此之外还提供了virtualappliance安装。

三. Harbor认证过程

1、docker daemon 从 docker registry拉取镜像。2、如果docker registry需要进行授权时,registry将会返回401 Unauthorized响应,同时在响应中包含了docker client如何进行认证的信息。3、docker client根据registry返回的信息,向auth server发送请求获取认证token。4、auth server则根据自己的业务实现去验证提交的用户信息是否存符合业务要求。5、用户数据仓库返回用户的相关信息。6、auth server将会根据查询的用户信息,生成token令牌,以及当前用户所具有的相关权限信息 。上述就是完整的授权过程.当用户完成上述过程以后便可以执行相关的pull push操作。认证信息会每次都带在请求头中。

四. Harbor整体架构

五.Harbor认证流程

A、首先,请求被代理容器监听拦截,并跳转到指定的认证服务器。B、 如果认证服务器配置了权限认证,则会返回401。通知docker client在特定的请求中需要带上一个合法的token。而认证的逻辑地址则指向架构图中的core services。C、 当docker client接受到错误code。client就会发送认证请求(带有用户名和密码)到core services进行basic auth认证。D、 当C的请求发送给ngnix以后,ngnix会根据配置的认证地址将带有用户名和密码的请求发送到core serivces。E、 core services获取用户名和密码以后对用户信息进行认证(自己的数据库或者介入LDAP都可以)。成功以后,返回认证成功的信息。

参考:https://blog.csdn.net/jiangshouzhuang/article/details/53267094

转载于:https://www.cnblogs.com/shix0909/p/11116817.html

(十九)VMware Harbor 详细介绍相关推荐

  1. Hadoop系列 (九):Sqoop详细介绍

    文章目录 Hadoop系列文章 Sqoop简介 Sqoop架构 Sqoop数据导入 Sqoop数据导出 Sqoop安装部署 版本介绍 前提环境 下载 安装配置 Sqoop的使用 构建测试数据 将MyS ...

  2. 郑州计算机技校哪个学校好,郑州十大技校排名 详细介绍

    郑州的技校有哪些呢?哪几所学校比较好?想必大家都很想了解,下面将为您详细介绍,仅供参考. 郑州技校排名前十 郑州商业技师学院 河南省郑州水利学校 郑州国防科技学校 登封市中等专业学校 郑州市金融学校 ...

  3. Hyperledger系列(十二)MSP详细介绍

    简介 MSP的作用,不仅仅在于列出谁是网络参与者或Channel成员. MSP可以确定,成员在MSP所代表的Org(trust domain)(例如,MSP管理员,组织细分成员)中扮演的特定角色. 它 ...

  4. BBB学习(十九):cape介绍(二)cape管理简介

    文章目录 一 前言 二 介绍及操作 2.1 cape的概念 2.2 查看当前已加载dtbo 2.3 手动加载dtbo 2.4 开机自动加载默认dtbo 2.5 根据实际cape加载dtbo 2.5.1 ...

  5. Python中最常用十大图像处理库详细介绍

    本文主要介绍了一些简单易懂最常用的Python图像处理库 当今世界充满了各种数据,而图像是其中高的重要组成部分.然而,若想其有所应用,我们需要对这些图像进行处理.图像处理是分析和操纵数字图像的过程,旨 ...

  6. 第五十九课 Hadoop入门介绍

    Hadoop入门 Hadoop入门 Hadoop 2.0介绍 转载于:https://blog.51cto.com/liwenjia/1881373

  7. Django笔记十九之manager用法介绍

    首先介绍一下 manager 的使用场景,比如我们有一些表级别的,需要重复使用的功能,都可以使用 manager 来实现. 比如我们在前面的笔记中介绍的 model 的 create().update ...

  8. 第四十九,反射基本介绍

    反射最初理解1 通过字符串的形式,导入模块2 我们前面讲到的导入模块,都是import 模块名称  如:import mk   这种方式导入的3 #!/usr/bin/env python # -*- ...

  9. iOS开发笔记之七十九——读写线程锁介绍(一)

    一.读写锁 在多线程环境下,我们经常会遇到读写同步的问题.常见的做法就是将读写做成互斥操作,但是这样会降低读写性能.通常情况下我们希望读操作之间是不互斥的,这个时候就需要用到读写锁了.简单来说,读写锁 ...

最新文章

  1. 二分图-匈牙利算法模板
  2. 阿里云一键建站产品,阿里云自营建站-中小企业建站首选
  3. java sqlserver 死锁_sqlserver数据库发生死锁处理
  4. 7个习惯可以改变一个人和他的一生
  5. 无效的wechatwin.dll文件errcode:126,点击“确定”下载最新版本
  6. cmd 日志刷新卡屏
  7. linux+模块与设备关系,linux内核设计与实现读书笔记——设备和模块
  8. 浏览器窗口可视区域大小相关方法
  9. 使用PublishSetting快速在Powershell中登录Azure
  10. 「沙龙回顾」从技术演进角度看猫眼电影
  11. epoch如何设置,在Keras中,steps_per_epoch和纪元的设置如何影响训练结果?
  12. 小学语文经典好词好句好段
  13. OpenCV开发笔记(六十四):红胖子8分钟带你深入了解SURF特征点(图文并茂+浅显易懂+程序源码)
  14. 配置tomcat使用https方式连接,同时也可以使用http方式连接
  15. sqlite自动转mysql,Sqlite数据库转换为mysql工具SqliteToMysql使用教程
  16. 海思3519A uboot开机画面
  17. 计算机程序设计员技能试题,计算机程序设计员理论试题库
  18. 用Java整合Clamav病毒库检测病毒
  19. 利用计算机课堂导入的好处,多媒体教学的好处
  20. 服务器没有响应客户端,socket编程某些服务器对某些客户端没有响应的问题!!...

热门文章

  1. Android客户端Monkey稳定性测试
  2. SQlite跨库查询
  3. 硬盘突然变raw格式_磁盘变成RAW格式的两种解决办法
  4. 图片和图片转base64大小的关系
  5. [转]中国将建口径8米巨型太阳望远镜
  6. Java基础(一) 八大基本数据类型
  7. Nginx正向代理和反向代理的区别
  8. Factory Methods
  9. 国外流行网上支付方式
  10. Computer Vision_2_Active Shape Models:Active Shape Models-Their Training and Application——1995