一、什么是Harbor




二、Harbor有那些功能









三、Harbor的结构



harbor 容器存放位置 harbor仓库是什么_docker

 

Harbor架构有六大核心组件:Proxy ,Registry,Core services,Databases,Job services,Log collector(Harbor-log)



  1. services:作为Harbor的核心功能,提供以下几个服务:





Harbor 的每个组件都是以 Docker 容器的形式构建的,因此,使用 Docker Compose 来对它进行部署。

总共分为7个容器运行,通过在docker-compose.yml所在目录中执行 docker-compose ps 命令来查看, 名称分别为:nginx、harbor-jobservice、harbor-ui、harbor-db、harbor-adminserver、registry、harbor-log。

其中 harbor-adminserver 主要是作为一个后端的配置数据管理,并没有太多的其他功能。harbor-ui 所要操作的所有数据都通过 harbor-adminserver 这样一个数据配置管理中心来完成

四、搭建Harbor

①试验环境


主机


IP


环境  


Server


192.168.226.121


docker docker-compose harbor harbor-offline-v1.1.2


Client


192.168.226.122


docker

②部署Harbor(192.168.226.121)

安装harbor到/usr/local/

harbor 容器存放位置 harbor仓库是什么_docker_02

 


修改配置文件harbor.cfg


 第五行

 hostname = 192.168.226.121

harbor 容器存放位置 harbor仓库是什么_容器_03

 


执行Harbor安装sh /usr/local/harbor/install.sh

harbor 容器存放位置 harbor仓库是什么_docker_04

 


查看下进行环境 docker ps

harbor 容器存放位置 harbor仓库是什么_容器_05

 


登录Harbor仓库(默认账号:admin   默认密码:Harbor12345)

harbor 容器存放位置 harbor仓库是什么_Docker_06

 


创建一个项目

harbor 容器存放位置 harbor仓库是什么_java_07

 


harbor 容器存放位置 harbor仓库是什么_docker_08

 

harbor 容器存放位置 harbor仓库是什么_容器_09

 


③本地登录并进行测试上传和下载

#登录

docker login -u admin -p Harbor12345 https://127.0.0.1

#上传镜像

    #先将镜像打上标签

    docker tag nginx 127.0.0.1/mogu/nginx:ssssl

docker push nginx 127.0.0.1/mogu/nginx:ssssl    

#下载镜像

docker pull nginx


harbor 容器存放位置 harbor仓库是什么_java_10

harbor 容器存放位置 harbor仓库是什么_java_11

 

harbor 容器存放位置 harbor仓库是什么_java_12

 

 

harbor 容器存放位置 harbor仓库是什么_harbor 容器存放位置_13

 



④其他客户端对其访问

由于Docker Registry 交互默认使用的是 HTTPS,但是搭建私有镜像默认使用的是 HTTP 服务,所以与私有镜像交互时出现以下错误。

harbor 容器存放位置 harbor仓库是什么_docker_14

 


解决方案:在dockerserver文件中手动添加仓库服务器地址

vim /usr/lib/systemd/system/docker.service

添加  --insecure-registry 192.168.226.121

systemctl daemon-reload

systemctl restart docker

harbor 容器存放位置 harbor仓库是什么_容器_15

 


再次登录 docker login -u admin -p Harbor12345 http://192.168.226.121(当然如果你还是无法登录,建议去看下server有没有挂掉)

harbor 容器存放位置 harbor仓库是什么_docker_16

 


五、管理维护Harbor

可以使用 docker-compose 来管理 Harbor。一些有用的命令如下所示,必须在与docker-compose.yml 相同的目录中运行。

#关闭所有模块

docker-compose down -v

harbor 容器存放位置 harbor仓库是什么_java_17

 


#填充配置

./prepare

harbor 容器存放位置 harbor仓库是什么_容器_18

 


#再次启动Harbor

docker-compose up -d

harbor 容器存放位置 harbor仓库是什么_Docker_19

 


①创建Harbor用户


harbor 容器存放位置 harbor仓库是什么_harbor 容器存放位置_20

 

harbor 容器存放位置 harbor仓库是什么_docker_21

harbor 容器存放位置 harbor仓库是什么_harbor 容器存放位置_22

 

harbor 容器存放位置 harbor仓库是什么_docker_23

 

 



②对Client端进行操作


 docker logout 192.168.226.121

 #登入

 docker login 192.168.226.121

 #下载仓库镜像

 docker pull 192.168.226.121/mogu/nginx:ssssl

harbor 容器存放位置 harbor仓库是什么_容器_24

 

harbor 容器存放位置 harbor仓库是什么_Docker_25



harbor 容器存放位置 harbor仓库是什么_java_26

六、移除 Harbor 服务容器同时保留镜像数据/数据库

 

在server上进行操作

docker-compose down -v

#如果需要重新部署,需要移除Harbor服务容器全部数据

#持久数据,如镜像,数据库等在宿主机的/data目录下,日志在宿主机的/var/log/Harbor目录下

rm -rf /data/database

rm -rf /data/registry

五、远程同步

①安装第二台Harbor(192.168.226.122)

具体安装步骤重复上述

 

harbor 容器存放位置 harbor仓库是什么_harbor 容器存放位置_27

 


②配置同步(192.168.226.121)

harbor 容器存放位置 harbor仓库是什么_容器_28

 


harbor 容器存放位置 harbor仓库是什么_harbor 容器存放位置_29

 


harbor 容器存放位置 harbor仓库是什么_Docker_30

 



harbor 容器存放位置 harbor仓库是什么_java_31

我们刷新下被同步的仓库

harbor 容器存放位置 harbor仓库是什么_java_32