harbor的介绍

定位:企业级的docker镜像仓库

harbor特性:

  1. 图形界面
  2. 安全方面—>可以做用户认证和登陆
  3. 不同harbor之间的镜像复制与传输
  4. 支持中文界面

Harbor简介

Harbor工程是一个企业级的镜像服务器,用于存储和分发Docker镜像。作为一个企业级的私有镜像仓库,Harbor提供了更好的性能和安全性。Harbor支持建立多个registries,并提供这些仓库间镜像的复制能力。Harbor也提供了更加先进的安全特性,比如用户管理、访问控制

harbor的架构介绍

到哪里找好玩的镜像 docker 国内docker镜像库_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)

到哪里找好玩的镜像 docker 国内docker镜像库_harbor_02

安装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

到哪里找好玩的镜像 docker 国内docker镜像库_到哪里找好玩的镜像 docker_03


如何登陆harbor

[root@localhost harbor]# firefox 192.168.43.60

到哪里找好玩的镜像 docker 国内docker镜像库_docker_04


默认登陆用户名和密码
用户名:admin
密码:Harbor12345

到哪里找好玩的镜像 docker 国内docker镜像库_到哪里找好玩的镜像 docker_05

到哪里找好玩的镜像 docker 国内docker镜像库_docker_06


创建项目

到哪里找好玩的镜像 docker 国内docker镜像库_harbor_07

到哪里找好玩的镜像 docker 国内docker镜像库_docker_08


完成

dockerclient操作

修改docker配置文件

[root@localhost ~]# vim /usr/lib/systemd/system/docker.service
指向docker harbor的IP

到哪里找好玩的镜像 docker 国内docker镜像库_到哪里找好玩的镜像 docker_09


重启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服务器验证

到哪里找好玩的镜像 docker 国内docker镜像库_docker_10

到哪里找好玩的镜像 docker 国内docker镜像库_到哪里找好玩的镜像 docker_11


证明成功