harbor的介绍
Harbor工程是一个企业级的镜像服务器,用于存储和分发Docker镜像。作为一个企业级的私有镜像仓库,Harbor提供了更好的性能和安全性。Harbor支持建立多个registries,并提供这些仓库间镜像的复制能力。Harbor也提供了更加先进的安全特性,比如用户管理、访问控制
harbor的架构的名词解释
Nginx(Proxy):用于代理Harbor的registry,UI, token等服务
Registry:docker的原生镜像仓库,负责存储镜像文件
datavase:负责储存用户权限、审计日志,registry镜像信息的存储。
job sevice:负责与其它harbor的镜像复制工作的,也就是说它可以实现两个harbor直接的镜像复制
job_log :客户每次查看或者山下载镜像的记录都会记录到这里(日志文件)
core server内置有
(1)ui: 提供图形化界面,帮助用户管理registry上的镜像, 并对用户进行授权
(2)token:用户的口令验证
(3)webhook:为了及时获取registry 上image状态变化的情况, 在Registry上配置webhook,把状态变化传递给UI模块
harbor的工作流程
harbor中内置nginx做反向代理,代理registry和core server
客户端发送请求连接proxy服务,这时候proxy会查看client的请求,如果client是上传或者下载的请求proxy会把请求交给registry继续分析,然后再交给token进行口令验证,然后再交给database进行数据的记录,然后再从registry进行拉去数据,如果client交给proxy查看的请求,那么proxy会把请求交给Core services进行处理 core services里面有UI然后从database拉去数据给client查看,
job service起到作用是两个harbor之间是的镜像传输 webhook(类似于apl的接口)
harbor特性:
图形界面
安全方面—>可以做用户认证和登陆
不同harbor之间的镜像复制与传输
支持中文界面
harbor特性:
harbor搭建操作
实验配置环境:
准备两台安装了docker环境的机器:
dockerclient:192.168.43.203
dockerharbor:192.168.43.208
docker-client操作
[root@localhost certs]# docker pull hello-world
dockerharbor服务器操作
安装docker-compose,作用启动和关闭harbor
docker-compose 安装包位置
https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64
[root@localhost ~]# mv docker-compose /usr/bin/
[root@localhost ~]# chmod +x /usr/bin/docker-compose
安装harbor
tar zxf harbor-offline-installer-v1.6.2.tgz -C /usr/local/
修改harbor的配置文件
[root@localhost ~]# cd /usr/local/harbor/
[root@localhost harbor]# vim harbor.cfg
修改成自己的IP
7 hostname = 192.168.43.60
安装harbor,(自带的脚本直接执行安装)
[root@localhost harbor]# ./install.sh
如何登陆harbor
[root@localhost harbor]# firefox 192.168.43.60
默认登陆用户名和密码
用户名:admin
密码:Harbor12345
创建项目
dockerclient操作
修改docker配置文件
[root@localhost ~]# vim /usr/lib/systemd/system/docker.service
指向docker harbor的IP
重启docker配置文件,重启docker
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
登master的harbor
[root@localhost ~]# docker login -u admin -p Harbor12345 192.168.43.60
给hello-work镜像修改名称为192.168.43.60/kgc/hello-world:latest
[root@localhost ~]# docker tag hello-world:latest 192.168.43.60/kgc/hello-world:latest
docker客户端把镜像上传到harbor服务器上面
[root@localhost ~]# docker push 192.168.43.60/kgc/hello-world
harbor服务器验证