harbor的介绍
定位:企业级的docker镜像仓库
harbor特性:
- 图形界面
- 安全方面—>可以做用户认证和登陆
- 不同harbor之间的镜像复制与传输
- 支持中文界面
Harbor简介
Harbor工程是一个企业级的镜像服务器,用于存储和分发Docker镜像。作为一个企业级的私有镜像仓库,Harbor提供了更好的性能和安全性。Harbor支持建立多个registries,并提供这些仓库间镜像的复制能力。Harbor也提供了更加先进的安全特性,比如用户管理、访问控制
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搭建操作
实验环境
dockerclient:192.168.43.124
dockerharbor:192.168.43.60
两台相同操作
使用aliyun安装docker环境
[root@localhost ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@localhost ~]# yum -y install docker-ce
重启docker
[root@localhost ~]# systemctl restart docker
如果有docker的环境可以省略以上步骤
如果不想使用aliyun方式安装请参考以前写的文章
()
docker-client操作
docker pul镜像
[root@localhost ~]# 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
安装harbox
harbor的安装包
离线安装包(https://github.com/vmware/harbor/releases)
安装harbor
[root@localhost ~]# 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服务器验证
证明成功