Harbor是由VMware企业级公司开源Docker Registry管理项目,Harbor主要提供Dcoker Registry管理UI,提供的功能包括:基于角色访问的控制权限管理(RBAC)、AD/LDAP集成、日志审核、管理界面、自我注册、镜像复制、中文支持等。Harbor的目标是帮助用户迅速搭建一个企业级的Docker registry服务。它以Docker公司开源的registry为此,额外提供以下功能:
1)基于角色的访问控制(Role Based Access Control) 2)基于策略的镜像复制(Policy based image replication) 3)扫描镜像的漏洞(Vulnerability Scanning) 4)AD/LDAP集成(LDAP/AD support) 5)删除镜像和清洁空间(Image deletion & garbage collection) 6)友好的管理UI(Graphical user portal) 7)审计日志(Audit logging) 8)RESTful API 9)部署简单(Easy deployment)
Harbor所有组件都在Dcoker中部署,所以Harbor可使用Docker Compose快速部署。由于,所以,!
Harbor每个组件都是以Docker以容器的形式构建,可以使用Docker Compose部署。如果在环境中使用。kubernetes,Harbor也提供了kubernetes配置文件。:
- (Harbor核心服务)
- (运行着rsyslog日志收集的容器)
- (由官方mysql由镜像组成的数据库容器)
- (使用Nginx做反向代理)
- (官方的Docker registry)
- (Harbor配置数据管理器)
- (Harbor任务管理服务)
- (用于存储session)
Harbor用于存储和分发Docker企业级镜像Registry服务器:

1)Nginx(Proxy代理层):Nginx前端代理主要用于分发前端页面ui上传和下载访问和镜像流量; Harbor的registry,UI,token通过前置反向代理统一接收浏览器等服务Docker客户端的请求,并将请求转发给不同的后端服务
2)Registry v二、镜像仓库负责存储镜像文件; Docker官方镜像仓库, 负责储存Docker并处理镜像docker push/pull命令。由于我们要对用户进行访问控制,即不同用户对Docker image有不同的读写权限,Registry会指向一个token服务,每次强迫用户docker pull/push所有请求都应携带合法的请求token, Registry会通过公钥对token解密验证
3)Database(MySQL或Postgresql):为core services负责存储用户权限、审计日志、Docker image分组信息等数据
4)Core services(Admin Server):这是Harbor主要提供以下服务:
- UI:帮助用户管理图形界面registry上的镜像(image), 授权用户
- webhook:及时获取registry 上image状态变化, 在Registry上配置webhook,传递状态变化UI模块
- Auth服务:负责根据用户权限给每个人docker push/pull命令签发token. Docker 客户端向Regi?stry如果不包括服务发起请求token,它将被重定向到这里,得到它token后再重新向Registry进行请求
- API: 提供Harbor,RESTful API
5)Replication Job Service:提供多个 Harbor 实例之间的镜像同步功能
6)Log collector:帮助监控Harbor运行,收集其他组件log,供日后分析
1)proxy,它是一个nginx前端代理,主要是分发前端页面ui访问和镜像上传和下载流量,上图中通过深蓝色先标识; 2)ui提供了一个web管理页面,当然还包括了一个前端页面和后端API,底层使用mysql数据库; 3)registry是镜像仓库,负责存储镜像文件,当镜像上传完毕后通过hook通知ui创建repository,上图通过红色线标识,当然registry的token认证也是通过ui组件完成; 4)adminserver是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候回需要加载adminserver的配置,通过灰色线标识; 5)jobsevice是负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log,上图通过紫色线标识; 6)log是日志汇总组件,通过docker的log-driver把日志汇总到一起,通过浅蓝色线条标识。
官方提供2种部署Harbor的方式: 1): 从Docker Hub下载Harbor的镜像来安装, 由于Docker Hub比较慢, 建议Docker配置好加速器。 2): 这种方式应对与部署主机没联网的情况使用。需要提前下载离线安装包: harbor-offline-installer-.tgz 到本地
在线部署方式:非常慢
1)下载Harbor最新的在线安装包 2)配置Harbor (harbor.yml) 3)运行install.sh来安装和启动Harbor 4)Harbor的日志路径:/var/log/harbor
推荐系统配置:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
Harbor以容器的形式进行部署, 因此可以被部署到任何支持Docker的Linux发行版, 要使用Harbor,需要安装docker和docker-compose编排工具,并且具备如下环境:
Python2.7+
Docker Engine 1.10+
Docker Compose 1.6.0+
#====================================================================================================
[root@docker02 ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@docker02 ~]# setenforce 0
setenforce: SELinux is disabled
[root@docker02 ~]# cat /etc/sysconfig/selinux
....
SELINUX=disabled
[root@docker02 ~]# systemctl stop firewalld
[root@docker02 ~]# systemctl disable firewalld
[root@docker02 ~]# firewall-cmd --state
not running
[root@docker02 ~]# python --version
Python 2.7.5
|
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#更新yum包
[root@docker02 ~]# yum update
#卸载旧版本 Docker
[root@docker02 ~]# yum remove docker docker-common docker-selinux docker-engine -y
#安装相关软件包
[root@docker02 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
#添加docker源
[root@docker02 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装docker
[root@docker02 ~]# yum -y install docker-ce
#启动docker
[root@docker02 ~]# systemctl start docker
[root@docker02 ~]# systemctl enable docker
[root@docker02 ~]# docker version
Client: Docker Engine - Community
Version: 19.03.2
API version: 1.40
Go version: go1.12.8
Git commit: 6a30dfc
Built: Thu Aug 29 05:28:55 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.2
API version: 1.40 (minimum version 1.12)
Go version: go1.12.8
Git commit: 6a30dfc
Built: Thu Aug 29 05:27:34 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.6
GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version: 1.0.0-rc8
GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version: 0.18.0
GitCommit: fec3683
|
|
01
02
03
04
05
06
07
08
09
10
11
12
|
#下载docker-compose
[root@docker02 ~]# curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#授权
[root@docker02 ~]# chmod +x /usr/local/bin/docker-compose
#查看版本
[root@docker02 ~]# docker-compose version
docker-compose version 1.18.0, build 8dd22a9
docker-py version: 2.6.1
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t 3 May 2016
|
在线安装可能由于官网源的网络波动导致安装失败
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
标签: kc120e3e精密电阻
|