Harbor概述

Harbor是VMware公司开源的企业级Docker Registry项目

Harbor的优势

基于角色控制
基于镜像的复制策略
支持LDAP/AD
图像删除和垃圾收集
图形UI
审计
RESTful API

Harbor架构组成

Proxy

通过一个前置的反向代理统一接受浏览器,Docker客户端的请求,并将请求转发给后端不同的服务

Registry

负责存储Docker镜像。并处理docker push/pull 命令

Core services

Harbor的核心功能,包括UI、webhook、token服务
UI:提供网络页面
token:令牌
Webhook:微服务中的回调机制

Database

为core services提供数据库服务

Log collector

负责收集其他组件的log,供日后进行分析

Docker私有仓库架构拓扑:

在这里插入图片描述

用户请求通过Proxy反向代理访问Core services,UI提供web界面,token令牌,你第一次登录之后服务器会给你一串序列号,下次直接登录就行,你需要下载的镜像信息,属性,都存放在后面的database,再通过webhook回调去registry私有仓库调取镜像。这一系列的操作都存放在日志中。

部署Harbor服务实例演示

1.基础环境部署

#挂载资源包
mount.cifs //192.168.142.1/docker /mnt

切换挂载目录
cd /mnt

#复制控制命令到系统中
cp docker-compose /usr/local/bin

#查看版本信息
docker-compose -v

#解压harbor资源包
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local

2.配置Harbor参数

#切换至解压点目录
cd /usr/local/harbor/

#编辑Harbor配置
vim harbor.cfg 
#在第五行指定私库地址
hostname = 192.168.142.149

#使用脚本启动Harbor
./install.sh

3.远程登录Harbor

#登录harbor,默认管理员admin,密码Harbor12345
docker login -u admin -p Harbor12345 http://amyhdc.sun72.net

#关闭防火墙和安全功能
systemctl stop firewalld.service
setenforce 0

使用浏览器登录登录Harbor
在这里插入图片描述

4.建立项目,并向Harbor中上传镜像

在这里插入图片描述
在这里插入图片描述

#下载镜像
docker pull cirros

#为镜像打标签
docker tag cirros 127.0.0.1/my/cirros:v1

#上传镜像到Harbor
docker push 127.0.0.1/my/cirros:v1

在这里插入图片描述

#登出私库
docker logout http://amyhdc.sun72.net

5.创建Harbor新用户

在这里插入图片描述

#新建用户异地登录
docker login -u czt -p Czt12345 http://amyhdc.sun72.net

可以添加用户及角色到项目中
在这里插入图片描述

6.使用docker-compose管理Harbor

#移除Harbor服务容器同时保留镜像数据/数据库
docker-compose down -v

#执行脚本来填充配置
./prepare

#重新创建并启动Harbor服务容器
docker-compose up -d

#报错解决
#关闭防火墙,重启docker
systemctl restart docker
docker-compose up -d

#如需重新部署,需要移除Harbor服务容器全部数据
#先移除Harbor服务容器同时保留镜像数据/数据库
docker-compose down -v

#删除harbor服务容器全部数据
rm -rf /data/database/
rm -rf /data/registry/

谢谢阅读!!!