Harbor

一、Harbor简介
harbor是vmware开源的企业级registry,可以让你迅速的搭建自己的私有registry,harbor扩展的docker的registry,使harbor支持:
1,RBAC 基于角色的权限控制
2,基于策略的镜像复制
3,LDAP/AD支持
4,镜像删除和垃圾清理
5,Notary 镜像签名
6,用户界面
7,审计
8,RESTful api

二,Harbor 模块
harbor主要有6大模块,默认的每个harbor的组件都被封装成一个docker container,所以可以通过compose来部署harbor,总共分为8个容器运行,通过docker-compose ps来查看

harbor-adminserver:harbor系统管理接口,可以修改系统配置以及获取系统信息
harbor-db:存储项目的元数据、用户、规则、复制策略等信息
harbor-jobservice:harbor里面主要是为了镜像仓库之前同步使用的
harbor-log:收集其他harbor的日志信息。rsyslogd
harbor-ui:一个用户界面模块,用来管理registry。主要是前端的页面和后端CURD的接口
nginx:harbor的一个反向代理组件,代理registry、ui、token等服务。这个代理会转发harbor web和docker client的各种请求到后端服务上。是个nginx。nginx负责流量转发和安全验证,对外提供的流量都是从nginx中转,它将流量分发到后端的ui和正在docker镜像存储的docker registry
registry:存储docker images的服务,并且提供pull/push服务。harbor需要对image的访问进行访问控制,当client每次进行pull、push的时候,registry都需要client去token服务获取一个可用的token。
redis:存储缓存信息

三、安装
1,环境准备。
操作系统:Centos 7.2
IP:192.168.1.22

docker 17.03.2-ce

docker-compose 安装

curl -L https://github.com/docker/compose/releases/download/1.23.0-rc3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

harbor-offline-installer-v1.5.1.tgz 离线包下载

wget https://storage.googleapis.com/harbor-releases/release-1.5.0/harbor-offline-installer-v1.5.1.tgz 

2,解压,修改配置文件
cp harbor-offline-installer-v1.5.1.tgz /data/ ;tar zxvf harbor-offline-installer-v1.5.1.tgz
vim /data/harbor/harbor.cfg

hostname = 192.168.1.22
#ssl_cert = /data/cert/server.crt
#ssl_cert_key = /data/cert/server.key
ui_url_protocol = http // 协议
max_job_workers = 50  // 最大并发请求
customize_crt = on    // 是否使用自定义证书
harbor_admin_password = Harbor12345  // 管理员密码
db_password = root123    // mysql密码,如果不修改会默认启动一个mysql容器并且密码为root123

3,安装
/bin/sh install.sh

查看harbor image
docker images
Docker 仓库Harbor_第1张图片

docker-compose查看
docker-compose ps
Docker 仓库Harbor_第2张图片

四,登录harbor && 镜像上传下载

Docker 仓库Harbor_第3张图片

默认密码:admin/Harbor12345
密码可在harbor.cfg配置文件更改

管理界面:
Docker 仓库Harbor_第4张图片

上传镜像

修改docker启动配置文件docker.service

ExecStart 后边添加--insecure-registry=192.168.1.22
ExecStart=/usr/bin/dockerd --storage-driver=overlay2 --insecure-registry=192.168.1.22

不配置会报错:
Docker 仓库Harbor

重启docker

 systemctl daemon-reload
 systemctl restart docker.service 

CLI登录harbor
docker login 192.168.1.22
Docker 仓库Harbor_第5张图片

镜像打标签
Docker 仓库Harbor

docker push 192.168.1.22/szs/mysql_db:latest
Docker 仓库Harbor_第6张图片
后台查看
Docker 仓库Harbor_第7张图片

下载
环境:192.168.1.20
系统:Centos 7.2
安装docker

修改配置文件:docker.service
ExecStart=/usr/bin/dockerd --storage-driver=overlay2 --insecure-registry=192.168.1.22

重启

systemctl daemon-reload 
systemctl restart docker.service 

连接镜像仓库
docker login 192.168.1.22

因为有认证,否则报错
Docker 仓库Harbor

docker pull 192.168.1.22/szs/mysql_db
Docker 仓库Harbor_第8张图片
Docker 仓库Harbor