当前位置: 首页 > 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

相关文章:

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

基于centos7:Harbor-2.7.2部署和安装教程 1、软件资源介绍 Harbor是VMware公司开源的企业级DockerRegistry项目,项目地址为https://github.com/vmware/harbor。其目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。它以Docker公司开源的registry…...

Windows上使用CLion配置OpenCV环境,亲测可用的方法(一)

一、Windows上使用CLion配置OpenCV环境,亲测可用的方法: Windows上使用CLion配置OpenCV环境 教程里的配置: widnows 10 clion 2022.1.1 mingw 8.1.0 opencv 4.5.5 Cmake3.21.1 我自己的配置: widnows 10 clion 2022.2.5 mingw 8.…...

代码随想录算法训练营第四十三天

代码随想录算法训练营第四十三天| 1049. 最后一块石头的重量 II,494. 目标和,474. 一和零 1049. 最后一块石头的重量 II494. 目标和474. 一和零 1049. 最后一块石头的重量 II 题目链接:最后一块石头的重量 II 重点: 本题其实就是…...

如何在 Mac 和 Windows 上恢复未保存或删除的 PDF

Adobe Acrobat PDF 是一种常用格式。我们可能会在不同的 PDF 编辑器中编辑和保存 PDF 文件。但是,如果不保存 PDF 文件或不小心将其删除,那将是一种令人不安的体验。 保持冷静!首先,尽可能多地停止运行应用程序,这样它…...

windows开机不自动挂载磁盘的方法

本人的电脑系统为win11 写作时间20230430 开机不挂载某块磁盘的理由 1.本人电脑上有个仓库盘是机械硬盘,并不是每次开机都要用到,开机不挂载也许有利于增加数据盘的寿命 2.挂载了数据盘,有时候打开文件页面会比较慢,不够丝滑 …...

5 款 AI 老照片修复工具的横向比较

在大语言模型和各类 AI 应用日新月异的今天,我终于下定决心,趁着老照片们还没有完全发黄褪色、受潮粘连抑或损坏遗失,将上一代人实体相册里的纸质胶卷照片全部数字化,并进行一次彻底的 AI 修复,好让这些珍贵的记忆能更…...

2023企业服务的关键词:做强平台底座

作者 | 曾响铃 文 | 响铃说 4月下旬,软件行业相关的大会紧锣密鼓地开了好几场,不仅有政府主办的2023中国国际软件发展大会、中国软件创新发展大会,也有用友、浪潮等服务商举办的品牌活动,让软件业的话题一直保持热度。 以用友为…...

【Linux基本指令和权限(1)】

本文思维导图: 文章目录 一、Linux操作的特点二、使用指令从Xhell登录云服务器三、基本指令1.ls指令2. pwd指令:3.cd指令4. touch指令5. rm指令 写在最后 Linux是一个操作系统,操作系统是一款做软硬件管理的软件。 一、Linux操作的特点 Li…...

虹科新品 | 用于医疗应用的压力和气体流量传感器

ES Systems在创新MEMS方面拥有丰富的经验,设计了高质量和高性能的气体流量和压力传感器,由于其技术规格,出色的可靠性和有竞争力的价格,这些传感器在竞争产品中具有独特的品质。 Part.01 应用背景 众所周知,在医疗领域…...

原生小程序如何使用pdf.js实现查看pdf,以及关键词检索高亮

1.下载pdf.js库文件 前往 pdf.js 的 官网 下载库文件,下哪个版本都可以,后者适用于旧版浏览器,所以我下载的是后者 下载完成后,因为微信小程序打包的限制,我将库文件放到项目的后台系统了,在h5端处理会比在…...

「数据架构」MDM实现失败的主要原因

我经常参与一个组织的MDM程序,当他们在一个失败的项目之后向InfoTrellis请求帮助进行清理,或者开始尝试X,以实现对某些人来说非常困难的目标时。主数据管理实现失败的原因有很多,但是没有一个是由于在这些场景中使用的责备游戏的原…...

【Java基础 1】Java 环境搭建

🍊 欢迎加入社区,寒冬更应该抱团学习:Java社区 📆 最近更新:2023年4月22日 文章目录 1 java发展史及特点1.1 发展史1.2 Java 特点1.2.1 可以做什么?1.2.2 特性 2 Java 跨平台原理2.1 两种核心机制2.2 JVM…...

2023-4-26-C++11新特性之正则表达式

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下&#xf…...

python接口自动化测试 requests库的基础使用

目录 简单介绍 Get请求 Post请求 其他类型请求 自定义headers和cookies SSL 证书验证 响应内容 获取header 获取cookies 简单介绍 requests库简单易用的HTTP库 Get请求 格式: requests.get(url) 注意:若需要传请求参数,可直接在 …...

Photon AI Translator 和做产品的一些思考

近 4 个月内我一直在做 Apple 平台的产品,虽然从使用量来说「简体中文」用户是占多数,但我一直有做多语言的支持:英语、简体中文和繁体中文。习惯上 Google 翻译的我,基本上在使用 Xcode 过程中也会一直在浏览器开着 Google Trans…...

IPTV系统架构的分析与研究

1 引言   IPTV业务是伴随着宽带互联网的飞速发展而兴起的一项新兴的互联网增值业务,它利用宽带互联网的基础设施,以家用电视机和电脑作为主要终端 ,利用网络机顶盒(STB,Set -TopBox) ,通过互联网协议来传送电视信号.提供包括 电视节 目在 内…...

workerman开发者必须知道的几个问题

1、windows环境限制 windows系统下workerman单个进程仅支持200个连接。 windows系统下无法使用count参数设置多进程。 windows系统下无法使用status、stop、reload、restart等命令。 windows系统下无法守护进程,cmd窗口关掉后服务即停止。 windows系统下无法在一个…...

golang Gin实现websocket

golang使用 Gin实现 websocket,这里笔者重新搭建一个项目 1、创建项目安装依赖 项目名为 go-gin-websocket 在指定文件夹下,新建项目文件夹 go-gin-websocket 进入项目文件夹,打开cmd窗口,在项目(go-gin-websocket&a…...

冯·诺依曼体系结构与初始操作系统

目录 冯诺依曼体系结构 冯诺依曼体系结构图 内存 外存 网卡和磁盘 结构之间运算速度的差异 缓冲区 初始操作系统 概念 操作系统上边与下边分别有什么 从上到下依次顺序解析 用户 用户操作接口 系统调用接口 操作系统四项管理 驱动 硬件 冯诺依曼体系结构 冯诺…...

软件测试之黑盒测试的具体方法详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一.基于需求的设计方法二.等价类三.边界值四.判定表4.1 **关系**4.2 如何设计测试用例4.3 实际案例第一步第二步第三步第四步 五.正交排列5.1 什么是正交表5.2 …...

Cursor实现用excel数据填充word模版的方法

cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

什么是EULA和DPA

文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

网站指纹识别

网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...

Selenium常用函数介绍

目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

算术操作符与类型转换:从基础到精通

目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...