当前位置: 首页 > news >正文

基于centos7:Harbor-2.7.2部署和安装教程

基于centos7:Harbor-2.7.2部署和安装教程

1、软件资源介绍

Harbor是VMware公司开源的企业级DockerRegistry项目,项目地址为https://github.com/vmware/harbor。其目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。它以Docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control), AD/LDAP集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。Harbor的每个组件都是以Docker容器的形式构建的,使用Docker Compose来对它进行部署。用于部署Harbor的Docker Compose模板位于 /Deployer/docker-compose.yml,由5个容器组成,这几个容器通过 Docker link的形式连接在一起,在容器之间通过容器名字互相访问。对终端用户而言,只需要暴露 proxy ( 即 Nginx)的服务端口

Proxy:由Nginx 服务器构成的反向代理。
Registry:由Docker官方的开源 registry 镜像构成的容器实例。
UI:即架构中的 core services, 构成此容器的代码是 Harbor 项目的主体。 MySQL:由官方 MySQL 镜像构成的数据库容器。
Log:运行着 rsyslogd 的容器,通过 log-driver 的形式收集其他容器的日志

2、Harbor 特性

a、基于角色控制:用户和仓库都是基于项目进行组织的, 而用户基于项目可以拥有不同的权限
b、基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制 c、支持LDAP: Harbor的用户授权可以使用已经存在LDAP用户
d、镜像删除 & 垃圾回收: Image可以被删除并且回收Image占用的空间,绝大部分的用户操作API, 方便用户对系统进行扩展

e、用户UI:用户可以轻松的浏览、搜索镜像仓库以及对项目进行管理
f、轻松的部署功能: Harbor提供了online、offline安装,除此之外还提供了virtualappliance安装
g.Harbor 和 docker registry 关系: Harbor实质上是对 docker registry 做了封装,扩展了自己的业务模块

3、Harbor 认证过程

a、dockerdaemon从docker registry拉取镜像。
b、如果dockerregistry需要进行授权时, registry将会返回401 Unauthorized响应,同时在响应中包含了docker client如何进行认证的信息。
c、dockerclient根据registry返回的信息,向auth server发送请求获取认证token。
d、auth server则根据自己的业务实现去验证提交的用户信息是否存符合业务要求。 e、用户数据仓库返回用户的相关信息。
f、auth server将会根据查询的用户信息,生成token令牌,以及当前用户所具有的相关权限信息.上述就是完整的授权过程.当用户完成上述过程以后便可以执行相关的pull/push操作。认证信息会每次都带在请求头中

4、Harbor 认证流程
a、首先,请求被代理容器监听拦截,并跳转到指定的认证服务器。
b、 如果认证服务器配置了权限认证,则会返回401。通知dockerclient在特定的请求中需要带上一个合法的
token。而认证的逻辑地址则指向架构图中的core services。
c、 当docker client接受到错误code。client就会发送认证请求(带有用户名和密码)到coreservices进行basic auth认证。
d、 当C的请求发送给ngnix以后, ngnix会根据配置的认证地址将带有用户名和密码的请求发送到core serivces。
e、 coreservices获取用户名和密码以后对用户信息进行认证(自己的数据库或者介入LDAP都可以)。成功以后,返回认证成功的信息

一、安装底层需求

(1)Python应该是2.7或更高版本 (我的是python-2.7.5)

centos自带

(2)Docker引擎应为1.10或更高版本 (我的是docker-18.06.1)

uname -r
3.10.0-1160.el7.x86_64

(3)Docker Compose需要为1.6.0或更高版本 (我的是Docker Compose-2.17.3)

安装docker-compose
1.从github上下载docker-compose二进制文件安装
下载最新版的docker-compose文件

curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

若是github访问太慢,可以用daocloud下载

curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#添加可执行权限
chmod +x /usr/local/bin/docker-compose

第二种方式,到官网上下载,导入centos中/usr/local/bin,文件我将上传到资源中。自取
https://github.com/docker/compose/releases
测试安装结果

docker-compose --versiondocker-compose version 1.16.1, build 1719ceb

二、安装 Harbor

1.Harbor 官方下载地址:https://github.com/goharbor/harbor/releases

(文件我将上传到我的资源中,自行下载)

2.上传到服务器路径:/opt/software,然后解压到/opt/module

tar -zxvf  ./二进制包名 -C /opt/module

在这里插入图片描述
编辑配置文件,现将配置文件后缀去掉
vim harbor.yml
在这里插入图片描述

3.更改docker配置文件

vim daemon.json

{"data-root": "/opt/module/docker_data","log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2","storage-opts": ["overlay2.override_kernel_check=true"],"insecure-registries": ["192.168.2.221:80"],"registry-mirrors": ["https://registry.docker-cn.com","https://a8qh6yqv.mirror.aliyuncs.com","http://hub-mirror.c.163.com"]
}

systemctl daemon-reload #加载配置文件
systemctl stop docker # 重启docker
systemctl start docker

---------/docker.service 文档记录(这部分是我个人记录,请忽略)---------------------------------
vim /etc/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP \$MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s[Install]
WantedBy=multi-user.target

4.安装hardor,执行install.sh脚本

./install.sh

判断是否安装成功,脚本执行完后输出有展示,如本文:

[Step 5]: starting Harbor ...
[+] Running 10/10⠿ Network harbor_harbor        Created                                                                                                  0.1s⠿ Container harbor-log         Started                                                                                                  0.8s⠿ Container registry           Started                                                                                                  1.8s⠿ Container harbor-db          Started                                                                                                  1.8s⠿ Container harbor-portal      Started                                                                                                  1.7s⠿ Container registryctl        Started                                                                                                  1.6s⠿ Container redis              Started                                                                                                  1.7s⠿ Container harbor-core        Started                                                                                                  2.3s⠿ Container harbor-jobservice  Started                                                                                                  3.1s⠿ Container nginx              Started                                                                                                  3.0s
✔ ----Harbor has been installed and started successfully.----

查看docker的镜像,发现多了hardor的镜像

5.启动 hardor

到/opt/module/hardor目录下执行

docker-compose up -d

执行 docker ps 查看容器
在这里插入图片描述

6.可以在浏览器查看内容

http://192.168.2.221   # yml配置文件配置的
username/password : admin/Harbor12345 # 默认密码

在这里插入图片描述
Harbor如何停止与启动

 //切换到harbor安装包目录
docker-compose stop   //停止Harbor
docker-compose start  //启动Harbor

7.服务器命令行登录

[root@only harbor]# docker login -u admin http://192.168.2.221
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded

harbor安装部署完成

harbor的使用

第一步:建议先看一下这个例子

使用docker容器化部署mysql-8.0.27,并更改其默认端口3306为3306全流程记录。链接:http://t.csdn.cn/C5jiu

第二步:修改镜像tag,将mysql镜像推送到harbor

#修改镜像 tag:
docker tag mysql:latest 192.168.2.221:80/library/mysql:8.0.27
#登录harbor
docker login -u admin -p 123456 192.168.2.221:80
#推送镜像到harbor
docker push 192.168.2.221:80/library/mysql:8.0.27

在这里插入图片描述
个人记录请自行忽略
#给镜像打 tag,换个名字

docker tag 192.168.2.221:80/library/mysql:8.0.12 168.2.221:80/library/mysql:v8.0.12

第三步:查看镜像

在这里插入图片描述
推送镜像功能完成。
创建其他普通用户查看镜像
在这里插入图片描述

第四步:下载镜像

docker rmi 192.168.2.221:80/library/mysql:8.0.27       //先删除本地镜像
docker pull 192.168.2.221:80/library/mysql:8.0.27 //拉取镜像
v1: Pulling from library/mysql:8.0.27
Digest: sha256:81de8ab261ecfdb0bfd66ed1b1db8c13222b288fcd732c1dcdd09446f250b185
Status: Downloaded newer image for 192.168.2.221:80/library/mysql:8.0.27

参考文献

https://www.cnblogs.com/wxwgk/p/13287336.html
https://cloud.tencent.com/developer/article/1865259

http://www.lryc.cn/news/63188.html

相关文章:

  • Windows上使用CLion配置OpenCV环境,亲测可用的方法(一)
  • 代码随想录算法训练营第四十三天
  • 如何在 Mac 和 Windows 上恢复未保存或删除的 PDF
  • windows开机不自动挂载磁盘的方法
  • 5 款 AI 老照片修复工具的横向比较
  • 2023企业服务的关键词:做强平台底座
  • 【Linux基本指令和权限(1)】
  • 虹科新品 | 用于医疗应用的压力和气体流量传感器
  • 原生小程序如何使用pdf.js实现查看pdf,以及关键词检索高亮
  • 「数据架构」MDM实现失败的主要原因
  • 【Java基础 1】Java 环境搭建
  • 2023-4-26-C++11新特性之正则表达式
  • python接口自动化测试 requests库的基础使用
  • Photon AI Translator 和做产品的一些思考
  • IPTV系统架构的分析与研究
  • workerman开发者必须知道的几个问题
  • golang Gin实现websocket
  • 冯·诺依曼体系结构与初始操作系统
  • 软件测试之黑盒测试的具体方法详解
  • 图形编辑器:历史记录设计
  • ubuntu22.04下挂载第二块硬盘
  • 举例说明.net中in与out的作用与区别
  • Java常见的100道面试题(内附答案及代码示例)持续更新
  • 策略设计模式知多少
  • 第三十九章 配置镜像 - 配置 ISCAgent - 在 UNIX Linux 和 macOS 系统上为非根实例启动 ISCAgent
  • 嵌入式安卓开发:使用Camera2获取相机
  • 阿里云g8i服务器Intel Xeon(Sapphire Rapids) Platinum 8475B
  • 设计模式——组件协作模式之观察者模式
  • 观察者设计模式知多少
  • Flink之TaskManager内存解析