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://127.0.0.1
#关闭防火墙和安全功能
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://127.0.0.1
5.创建Harbor新用户
#新建用户异地登录
docker login -u czt -p Czt12345 http://192.168.142.149
可以添加用户及角色到项目中
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/
谢谢阅读!!!