离线环境harbor 搭建及使用
一 摘要
本文主要介绍harbor 的安装及使用。
二 环境信息及部署图
2.1 环境信息
名称 | 版本 | 备注 |
---|---|---|
操作系统 | centos7.9 | |
容器 | docker 23.0.1 | |
harbor | 2.7 | |
代理nginx | 待补充 |
2.2 架构图
说明:
1.harbor 核心服务里有个nginx ,也可以用该nginx 做代理
2.proxy-nginx 不是必须安装的,我这里是因为内部已经有个一个专用反向代理服务器,为了方便管理,就在原harbor nginx 上再代理了一层。
2.3 安装目录结构(不包含proxy-nginx)
/data/yunweistg1/harbor/harborsoft: 存放软件解压文件以及配置文件;
/data/yunweistg1/harbor/harbordata: 存放harbor 运行时数据文件
[root@localhost harbor]# pwd
/data/yunweistg1/harbor
[root@localhost harbor]# tree -L 3
.
├── harbordata
│ ├── ca_download
│ ├── database
│ │ └── pg13
│ ├── job_logs
│ │ ├── 14588b0a2d344e858b1a88ee.log
│ │ ├── 60332bdfa0bb84f6d88db945@1695686400.log
│ │ ├── 60332bdfa0bb84f6d88db945@1695772800.log
│ │ ├── 9dffa133c54e1dc2df7c84ba.log
│ │ ├── be5bf53eb57feb447dcf7b2d.log
│ │ └── fa303561c3ca9909d0d3180d.log
│ ├── redis
│ │ └── dump.rdb
│ ├── registry
│ │ └── docker
│ ├── secret
│ │ ├── core
│ │ ├── keys
│ │ └── registry
│ └── trivy-adapter
│ ├── reports
│ └── trivy
└── harborsoft└── harbor├── common├── common.sh├── docker-compose.yml├── harbor.v2.7.1.tar.gz├── harbor.yml├── harbor.yml.tmpl├── install.sh├── LICENSE└── prepare18 directories, 15 files
[root@localhost harbor]#
三 安装
3.1 安装准备
下载安装包,以及安装操作系统和docker\docker-compose
3.1.1 下载安装包
harbor 官网地址:https://goharbor.io/
3.1.2 安装docker 以及docker-compose
具体安装略
3.2 安装harbor核心服务
harbor 的安装思路如下:
harbor.yml 是原始配置文件,根据需要修改,然后执行.prepare 命令,会根据harbor.yml 内容生成各子系统的配置文件,然后运行install.sh 执行安装。
3.2.1 修改配置文件
主要配置harbor.yml
3.2.1.1 http&https
这块大家根据需要调整,比如端口冲突,就调整端口。
重点说明下 hostname 和external_url
1.官网解释:若配置了external_url,可以不配置hostname ;external_url 一般与proxy_nginx 里配置的域名保持一致;
2.harbor 搭建好后,检查pull 或者push 地址 是否是你想要的地址,这个地址 是由这两个参数控制
# Configuration file of Harbor# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 10.3.170.75# http related config
http:# port for http, default is 80. If https enabled, this port will redirect to https portport: 8033# https related config
#https:# https port for harbor, default is 443
# port: 443# The path of cert and key files for nginx
# certificate: /your/certificate/path
# private_key: /your/private/key/path# # Uncomment following will enable tls communication between all harbor components
# internal_tls:
# # set enabled to true means internal tls is enabled
# enabled: true
# # put your cert and key files on dir
# dir: /etc/harbor/tls/internal# Uncomment external_url if you want to enable external proxy
# And when it enabled the hostname will no longer used
external_url: https://stg1junharbor.XXXXX.com
3.2.1.2 配置 harbor容器 映射目录
这里配置 harbor 容器的映射目录
# The default data volume
data_volume: /data/yunweistg1/harbor/harbordata
3.2.2 安装
然后执行
./prepare
./install.sh
到此harbor 核心服务就完成安装
3.3 非核心服务安装
harbor 里有些组件是非核心服务,作为可选组件安装。比如容器漏洞扫描软件trivy
3.3.1 安装trivy
先关闭harbor 容器然后再安装
docker-compose -f docker-compose.yml down -v
./install.sh --with-trivy
四 日常使用及维护
4.1 trivy 漏洞库离线同步
主要通过在外网下载trivy 漏洞库,然后人工同步到内网trivy
4.1.1 关闭harbor 里trivy 自动更新配置
trivy:# 关闭在线更新skip_update: true
# 开启离线扫描offline_scan: true
#其余配置请使用默认或者按需调整
重新执行
./prepare
./install.sh --with-trivy
4.1.2 外网下载trivy 漏洞库
通过oras 下载漏洞库,然后人工同步到内网对应目录
下载oras 地址:https://github.com/oras-project/oras/releases
漏洞库下载:
trivy v2
oras pull ghcr.io/aquasecurity/trivy-db:2
oras pull ghcr.io/aquasecurity/trivy-java-db:1
trivy v1
https://github.com/aquasecurity/trivy-db/releases
oras pull ghcr.io/aquasecurity/trivy-java-db:1
我用的是V2
人工同步到内网
漏洞库存放到对应目录
# 漏洞库离线文件移动至对应目录
tar -xzvf db.tar.gz -C /data/yunweistg1/harbor/harbordata/trivy-adapter/trivy/db
tar -xzvf javadb.tar.gz -C /data/yunweistg1/harbor/harbordata/trivy-adapter/trivy/java-db
# 授权
chown 10000:10000 -R /data/harbordata/trivy-adapter/trivy
最好重启下harbor 容器即可。
4.2 proxy-nginx 反向代理配置
这个配置仅供参考
upstream harbor {# session stickyserver 10.3.170.75:8033 max_fails=3 fail_timeout=10s;keepalive 128;
}server {listen 80;listen 443 ssl;server_name stg1junharbor.xxxxx.com;ssl_certificate /etc/nginx/conf.d/cert/_.xxxxx.com.pem;ssl_certificate_key /etc/nginx/conf.d/cert/_.xxxxx.com.key;ssl_session_cache builtin:1000 shared:SSL:10m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;ssl_prefer_server_ciphers on;charset utf-8;client_body_buffer_size 10M;client_max_body_size 10240M;location / {proxy_pass http://harbor;proxy_connect_timeout 300;proxy_send_timeout 600;proxy_read_timeout 600;proxy_max_temp_file_size 5000m;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}
}
相关文章:
离线环境harbor 搭建及使用
一 摘要 本文主要介绍harbor 的安装及使用。 二 环境信息及部署图 2.1 环境信息 名称版本备注操作系统centos7.9容器docker 23.0.1harbor2.7代理nginx待补充 2.2 架构图 说明: 1.harbor 核心服务里有个nginx ,也可以用该nginx 做代理 2.proxy-ngin…...
华为杯数学建模比赛经验分享
再过一周左右,第二十届华为杯数学建模比赛就要开赛了,所以今天分享一下个人数学建模比赛的经验。 今天给大家分享一期关于华为杯数学建模比赛的经验分享,我将从以下三个方面展开说明: (1)如何准备数学建模比赛&#x…...
c语言 - 实现每隔1秒向文件中写入当前系统时间
实现思路 主要是通过库函数和结构体获取当前系统时间(年月日和时分秒)保存到变量里,然后通过格式化输出函数将当前系统时间输出到文件中去。 但是需要注意的是题目要求每隔 1 s对系统时间进行输出,所以需要加入 sleep()函数进行调…...
使用cpolar端口映射的方法轻松实现在Linux环境下SVN服务器的搭建与公网访问
文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…...
前后台分离开发 YAPI平台 前端工程化之Vue-cli
目录 YAPI介绍前端工程化之Vue-cli前端工程化简介前端工程化入门——Vue-cli环境准备Vue项目简介创建Vue项目vue项目目录结构介绍vue项目运行方法 Vue项目开发流程 前后台混合开发这种开发模式有如下缺点: 沟通成本高:后台人员发现前端有问题࿰…...
【js/es6】合集
目录 随机生成字符串每十个字符换行 随机生成字符串 function generateRandomAlphaNum(len) {var rdmString "";for (; rdmString.length < len; rdmString Math.random().toString(36).substr(2));return rdmString.substr(0, len); }每十个字符换行 string.…...
Nginx modules build fail:field ‘pkt6’ has incomplete type
前言 最近升级Nginx 1.24.0,编译第三方module出错: /usr/src/nginx_modules/ngx_json_post_module/src/ngx_json_post_module.c In file included from src/event/ngx_event.h:526,from src/http/ngx_http_upstream.h:14,from src/http/ngx_http.h:34,…...
电脑突然提示mfc140u.dll丢失,缺失mfc140u.dll无法运行程序的解决方法
在当今信息化社会,电脑已经成为我们生活和工作中不可或缺的一部分。然而,随着技术的不断发展,电脑也会出现各种问题。其中,最常见的问题之一就是“mfc140u.dll丢失”。那么,当我们遇到这个问题时,应该如何解…...
国庆day1
消息队列 代码 发送 #include<myhead.h> //声明一个消息结构体 typedef struct {long msgtype; //消息类型char data[1024]; //消息正文 }Msg_s; #define SIZE sizeof(Msg_s)-sizeof(long) //消息正文的大小 int main(int argc, const char *argv[]) {key_t key; /…...
从零开始之了解电机及其控制(11)实现空间矢量调制
广泛地说,空间矢量调制只是将电压矢量以及磁场矢量在空间中调制到任意角度,通常同时最大限度地利用整个电压范围。 其他空间矢量调制模式确实存在,并且根据您最关心的内容,它们可能值得研究。 如何实际执行这种所谓的交替反向序列…...
如何将html转换成markdown
什么是Turndown “Turndown” 是一个用于将 HTML 转换为 Markdown 的 JavaScript 库。它通常用于将富文本内容从网页或其他 HTML 格式转换为纯文本 Markdown 格式,以便在不同平台上显示或存储。 如果在有node环境的情况下要使用 Turndown,首先需要将它…...
【VUE复习·3】@keyup.xxx 键盘事件触发函数(单按键 or 组合按键触发)
总览 1.keyup.xxx or keydown.xxx 单按键触发 2.组合按键触发 一、keyup.xxx or keydown.xxx 1.用法 在我们使用 keyup.enter 时,那么我们可以这样写: <div><input type"text" placeholder"按下回车键以确定..." keyu…...
IntelliJ IDEA学习总结(3)—— IntelliJ IDEA 常用快捷键(带动图演示)
一、构建/编译 Ctrl + F9:构建项目 该快捷键,等同于菜单【Build】—>【Build Project】 执行该命令后,IntelliJ IDEA 会编译项目中所有类,并将编译结果输出到out目录中。IntelliJ IDEA 支持增量构建,会在上次构建的基础上,仅编译修改的类。 Ctrl + Shift + F9:重新编…...
巨人互动|Facebook海外户Facebook的特点优势
Facebook作为全球最大的社交媒体平台之一,同时也是最受欢迎的社交网站之一,Facebook具有许多独特的特点和优势。本文小编将说一些关于Facebook的特点及优势。 1、全球化 Facebook拥有数十亿的全球用户,覆盖了几乎所有国家和地区。这使得人们…...
(vue3)create-vue 组合式API
优势: 更易维护:组合式api,更好的TS支持 之前是选项式api,现在是组合式,把同功能的api集合式管理 复用功能封装成一整个函数 更快的速度 更小的体积 更优的数据响应式:Proxy create-vue 新的脚手架工…...
【如何看待Unity收费】对标中小公司的待就业者的该如何做
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:Uni…...
c++迷宫小游戏
一、总结 一句话总结: 显示:根据map数组输出图像 走动:修改map数组的值,每走一步重新刷新一下图像就好 1、如果走函数用z(),出现输入s会向下走多步的情况,原因是什么? 向下走两层循环ij增加&a…...
需求堆积,如何排序产品优先极
面对堆积的产品需求,到底该如何排序优先极呢? 需求排期的目标 在谈具体的排期方法之前,有必要先探讨一下——合理的需求排期应该达到什么的目标呢?如果站在与项目相关的利益人员的角度来看,至少应该使以下四方面的收…...
计算机视觉 回头重新理解图像中的矩
一、人类的欲望 图像中的矩是一个十分古老的话题,这个东西的出现始于人类的欲望,想要找到一种自动且强大的图像分析方法。 比如我们要在图像中识别某一个物体,而这个物体在不同的成像条件下,表现出的高矮胖瘦方向位置颜色都不可能完全一致,这就为识别带来了巨大的困难,但…...
MapStruct应用实战及BeanUtils性能比较
目录 1、MapStruct介绍2、应用设置2.1 Maven依赖 3、功能实战3.1 常用注解3.2 基本映射3.2.1 定义映射器的Java接口3.2.2 测试验证 3.3 参数引用映射3.3.1 定义映射器的Java接口3.3.2 测试验证 3.4 多对象参数映射3.4.1 定义映射器的Java接口3.4.2 测试验证3.4.3 注意点 3.5 嵌…...
ISP技术概述
原本或许是为了对冲手机系统和APP设计无力感而诞生的拍照功能,现今却成为了众手机厂家除背部设计外为数不多可“卷”的地方,自拍、全景、夜景、小视频等旺盛的需求让这一技术的江湖地位迅速变化。对圈内人士而言,这一波变化带来的后摄、双摄、多摄、暗光、防抖、广角、长焦、…...
CSDN: ABTest流量分层分桶机制
在互联网行业,无论是构建搜索推荐系统,还是智能营销等场景,都是围绕用户进行不同的实验,从各项指标上观察用户对不同交互、流程、策略、算法等反馈,进而对产品进行迭代改进。 本文的goal:在进行了模型的线下…...
【小余送书第一期】《数据要素安全流通》参与活动,即有机会中奖哦!!
目录 1、背景介绍 2、本书编撰背景 3、本书亮点 4、本书主要内容 5、活动须知 1、背景介绍 随着大数据、云计算、人工智能等新兴技术的迅猛发展,数据已经成为我国经济社会发展的五大生产要素之一,《网络安全法》《个人信息保护法》《数据安全法》的…...
蓝牙核心规范(V5.4)10.7-BLE 入门笔记之L2CAP
1.概述 ATT属性用于两个设备,一个扮演客户端的角色,另一个扮演服务器的角色。服务器公开一系列称为属性的复合数据项。这些属性由服务器按索引列表组织在称为属性表的列表中。 每个属性包含一个句柄、一个通用唯一标识符(UUID)、一个值和一组权限。 句柄是一个唯一的索引…...
VUE之正则表达式全集整理
一、正则表达式的基本语法 var expression /pattern(模式)/flags(标识符); 二、如何创建正则表达式 1.字面量创建 代码如下: //匹配字符串中所有“at”的实例 var e /at/g; //匹配第一个“bat”或“cat”,不区分大小写 var e /[bc]at/i; 2.RegExp构造函数创…...
Python 中的字符串基础与应用
在Python中,字符串可以用单引号或双引号括起来。‘hello’ 与 “hello” 是相同的。您可以使用print()函数显示字符串文字: 示例: print("Hello") print(Hello)将字符串分配给变量是通过变量名后跟等号和字符串完成的:…...
C++:如何实现数组元素逆置?多种方法
方法1:使用额外的数组 这是一种比较简单的方法,它创建一个额外的数组来存储逆置后的元素,然后将其复制回原始数组。 #include <iostream>void reverseArray(int arr[], int size) {int reversed[size];for (int i 0; i < size; i)…...
php框架thinkPHP6的安装教程
1,composer官网下载最新版本 composerhttps://getcomposer.org/download/ 2,双击下载后的运行文件,一直点击next就行了 上面这个路径根据自己安装的php版本位置选择(没有的可以下载一个phpstudy),最后需要…...
PTA程序辅助实验平台——2023年软件设计综合实践_3(分支与循环)
第一题:7-1 印第安男孩 - C/C 分支与循环 朵拉编程的时候也想顺便练习英语。她编程从键盘读入一个整数n,如果n值为0或者1,向屏幕输出“0 indian boy.”或“1 indian boy.”;如果n大于1,比如9,则输出“9 in…...
【C语言数据结构】线性表-链式存储-单链表
线性表-链式存储-单链表 代码实现 代码实现 #include<stdio.h> #include<stdlib.h> #include<stdbool.h>//定义元素数据类型 #define ElemType int//定义结点结构体 typedef struct LNode {//数据域,说白了就是存放当前节点的数据的。ElemType d…...
做网站用哪种编程语言/seo搜索引擎入门教程
早些时戴尔发布了SAN Headquarters(SAN HQ) v2.2。这个版本的SAN HQ给用户带来了一些全新的和令人激动的特性。 如果您已经是SAN HQ的用户了,您应该能够意识到SAN HQ的诸多益处。通过发现性能的瓶颈,SAN HQ可以改善整个SAN系统的性能。通过发现那些未被有…...
沧州网站制作公司/seo优化方案策划书
我想要向您介绍能想像到的开始 GUI 编程的最简单方法,就是使用 Scriptics 的 TK 和 Tkinter 封装器。我们将与 developerWorks 中的 “Python 中的 curses 编程” 提到的 curses 库进行很多比较。除了 curses 实现文本控制台而 TK 实现 GUI 这一差别之外,…...
做的好的网站有哪些/怎么在百度上设置自己的门店
-- 根据表名找表信息 -- Sql Server select * from sysobjects where xtypeU and name 表名; -- Oracle select table_name,tablespace_name,temporary from user_tables where table_nameTEST_TEMP; --(表名变量值必须大写) -- 根据字段找对应表名 -- Sql Server select a…...
建设网站的公司排名/网络营销的特点有几个
往期精选● 深度解析某头条的一道面试题● 如果你还是“程序员”,我劝你别创业!● 【良心文章】终于有人把云计算、大数据和人工智能讲明白了!原文:https://blog.csdn.net/learningcoding/article/details/79983248作者:Yoda_wang搞懂 Hash…...
点赞分享打赏 wordpress/下载百度2023最新版
八款知名MartingaleEA 策略的评价“Martingale是纯粹的恶魔,它会吞噬掉你所拥有的一切!”,多年来,这是人们对Martingale的一致看法。Martingale的使用导致了逆势,重仓,无止损,与经典的外汇投资理…...
网站建设公司能信吗/新媒体seo指的是什么
该方法提交表单的方式与用户单击 Submit 按钮一样,但是表单的 onsubmit 事件句柄不会被调用。 <html><head><title>submit样式的表单</title><style>body { font: 100% 微软雅黑;}#leftblock{position:absolute;width:100px;font: 1…...