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

news2024/12/23 1:42:36

基于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 --version
 
docker-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"
 ],
 "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 # 默认密码

在这里插入图片描述

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的使用

好兄弟的文档附上;https://blog.csdn.net/liguanhaoyonghu/article/details/128509776

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/464437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构3:栈和队列

目录 1.栈 1.1栈的概念及结构 ​1.2栈的实现 2.队列 2.1队列的概念及结构 2.2队列的实现 2.3循环队列 ​3.栈和队列的面试题 4.概念选择题 1.栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据…

深入探讨Linux驱动开发:驱动介绍与hello驱动实例

文章目录 前言一、Linux驱动介绍1.用户态和内核态2.内核功能介绍3.驱动程序介绍 二、驱动程序分类与注意事项1.驱动程序分类2.内核驱动开发注意事项 三、hello驱动开发1.驱动模块2.模块加载和卸载函数3.编写hello模块4.Makefile 四、运行测试总结 前言 通过之前对于IGKBoard开…

Python操作PostgreSQL数据库

个人简介:一个从会计转行数据分析师的三旬老汉 擅长领域:数据分析、数据仓库、大数据 博客内容:平时会将自己工作中遇到的问题进行归纳总结,分享给各位小伙伴,意在帮助大家少加班、不掉发,让我们相互学习&a…

Timer0/1设置时钟计算中断时间

时钟一般分为外部晶振时钟和内部时钟,相对而说,外部晶振时钟的精准度比内部系统时钟高,时间计算的更准。除非产品需要一般都不会用外部晶振时钟,因为好的东西贵啊,成本高。 本文主要介绍如何利用时钟设置Timer0/1&…

0603基础使用(二)-react路由-react

文章目录 3 NavLink简单封装4 switch的使用5 解决样式丢失问题6 路由的模糊匹配和严格匹配7 Redirect结语 3 NavLink简单封装 在之前使用NavLink标签时&#xff0c;只有2个&#xff0c;代码如下&#xff1a; <NavLink activeClassName"g2zh" classNamelist-grou…

C#:如何用分部类将一个大文件改为多个小文件?

很多时候我们会发现&#xff0c;写来写去&#xff0c;一个文件慢慢就变得很大了&#xff0c;行数过千基本上就维护比较困难。 将公共代码模块化&#xff0c;可以减少一些代码&#xff0c;也是非常有效的。 那还有其它办法吗&#xff1f; 用 分部类 可以解决。 下面是简单的…

eBPF的发展演进---从石器时代到成为神(三)

4. 内在驱动 由以上简要的回顾和梳理可见&#xff0c;内核开发者们所不断寻找的是一种充分表达能力的动态机制&#xff0c;进而打破内核和用户态的壁垒&#xff08;至少在逻辑层面&#xff09;&#xff0c;从而实现一种自由、直接的需求实现。技术成为内核开发者们锋利的工具&…

UE4/5 行为树使用教程

使用行为树首先需要保证目标蓝图是继承自Character基类。然后根据本文下面的流程操作即可。 1.创建AIController 首先需要在角色自身蓝图之外创建一个新的蓝图&#xff0c;继承自AIController&#xff1a; 2.挂载AIController 找到角色自身蓝图类设置中的Pawn一栏&#xf…

云LIS系统是什么?云LIS系统的功能有哪些?

云LIS系统源码 C#医学检验云LIS平台源码 云LIS系统是什么&#xff1f; 云LIS是为区域医疗提供临床实验室信息服务的计算机应用程序&#xff0c;可协助区域内所有临床实验室相互协调并完成日常检验工作&#xff0c;对区域内的检验数据进行集中管理和共享&#xff0c;通过对质量…

C#探索之路(7):初探LitJson库并了解其中json的解析原理与处理报错

C#探索之路(7)&#xff1a;使用LitJson库解析数据抛出的异常错误修复指南与途径Tips 对Json格式的了解程度一定程度上影响了解决JSON相关问题的效率&#xff1b; 文章目录 C#探索之路(7)&#xff1a;使用LitJson库解析数据抛出的异常错误修复指南与途径Tips1、初步较为系统的去…

TryHackMe-Mnemonic(boot2root)

Mnemonic I hope you have fun. 端口扫描 循例nmap FTP枚举 尝试anonymous Web枚举 进80 gobuster扫 对着webmasters再扫一下 对着backups继续扫 下载zip文件&#xff0c;发现有密码 zip2john john直接爆 查看note.txt, 给出了ftpuser hydra直接爆ftp 进到ftp 用wget下载所…

VR全景图片,探究VR全景图片为何如此受欢迎?

随着科技的不断进步&#xff0c;虚拟现实技术逐渐渗透到我们的日常生活中&#xff0c;为我们带来了许多前所未有的体验和乐趣。而其中&#xff0c;VR全景图片作为一种基于虚拟现实技术的图片展示形式&#xff0c;不仅在旅游、房地产、教育等领域得到了广泛的应用&#xff0c;也…

【Java基础】语法基础

本文适合有编程基础或是需要Java语言复习的家人们食用~ 一、Java语言介绍 本篇文章使用的JDK版本是1.8&#xff08;即JDK 8&#xff09;Java语言是运行在JVM上的&#xff0c;有了JVM&#xff0c;Java语言得以在不同操作系统上运行垃圾回收机制&#xff1a;Java语言提供了一种…

文献阅读 Meta transfer learning-based super-resolution infrared imaging

题目 Meta transfer learning-based super-resolution infrared imaging 基于元迁移学习的超分辨率红外成像 摘要 我们提出了一种具有元迁移学习和轻量级网络的红外图像超分辨率方法。我们设计了一个轻量级网络来学习低分辨率和高分辨率红外图像之间的映射。我们使用外部数据…

科大讯飞版ChatGPT开始内测《讯飞星火》

科大讯飞版ChatGPT产品&#xff0c;提前交卷了&#xff01; 就在昨夜&#xff0c;讯飞骤然向开发者提供了内测通道&#xff0c;取名为讯飞星火认知大模型对外开启内测。 还有个神奇的英文名字Spark Desk&#xff0c;据说有“火花桌面智能助手”的意思。 申请的过程很简单。用…

Speech and Language Processing-之文本规范化

在对文本进行几乎任何自然语言处理之前&#xff0c;都必须对文本进行规范化。至少有三个任务通常作为任何规范化过程的一部分: 1. 分词 2. 规范化词格式 3. 句子分段 让我们从一个简单的(如果有点幼稚的话)单词标记化和非malization(以及频率计算)版本开始&#xff0c;它可以…

CIC 滤波器——不同长度的单级CIC滤波器的频谱特性

CIC 滤波器 % 多速率信号处理过程的关键是设计满足要求的抗混叠滤波器&#xff1a; % 第一&#xff1a;滤波器在有用信号频段内的纹波系数满足要求&#xff1b; % 第二&#xff1a;抽取或内插处理后&#xff0c;在有用信号频段内不产生频谱混叠&#xff1b; % 第三&#xf…

ASM磁盘组增加磁盘

续昨天的问题&#xff0c;DATA磁盘组空间不足的问题&#xff0c;客户也紧张&#xff0c;一早就讨论方案&#xff0c;新增2个2T的磁盘&#xff0c;将原来2个500G磁盘下线&#xff0c;下午存储端配置后&#xff0c;下面就是主机和数据库的事情&#xff08;为了避免客户信息泄露&a…

生成树协议 STP

文章目录 1 概述2 生成树协议 STP2.1 桥 ID&#xff08;Bridge ID&#xff09;2.2 路径开销&#xff08;Path Cost&#xff09;2.3 示例 3 扩展 1 概述 #mermaid-svg-QRMpkzeB3Xf66zNv {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#3…

【学习笔记】- 零基础学React

React是用于构建用户界面的JavaScript库。想要深入学习 react &#xff0c;就应该从 jsx 入手 react脚手架初始化项目 >> npm install -g create-react-app >> create-react-app proname >> npm run start运行之后&#xff0c;出现以下画面&#xff0c;至此…