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

docker- harbor私有仓库部署与管理

什么是 harbor

harbor是一个开源的云原生镜像仓库,它允许用户存储、签名、和分发docker镜像。可以将 harbor 看作是私有的docker hub ,它提供了更新安全性和控制性,让组织能够安全的存储和管理镜像

harbor RBAC(基于角色访问控制),可以对不同的用户和用户组进行领过全向控制,并且提供灵活的复制和同步策略,可以实现多个 harbor 实例的镜像复制和同步

Harbor的特性
  1. 基于角色控制

  2. 基于镜像的复制策略

  3. 支持 LDAP/AD

  4. 镜像删除和垃圾回收

  5. 图形化用户界面

  6. 审计管理

  7. 支持 restful API

docker Harbor核心组件
  • proxy

通过一个反向代理同意接受浏览器 docker客户端请求的,并且将请求转发给后端不同的服务,是一个方向海里组件

  • registry

发原则存储docker镜像 处理 docker pull/push 命令来上传和下载

  • core services

horbar的核心功能,包括 ui、oken、webhook

webhook:负责网站的一些服务功能

token:令牌 提供身份认证服务

ui:显示可视化界面

  • databases

为 core services 提供数据的服务 数据库记录镜像的元信息以及用户的身份信息

  • log collector

负责收集其他组件的一些日志,一共我们进行分析以及健康检查等

  • job services

只要做镜像物质,本地镜像可以同步到其它harbor私有仓库中

  • adminserver

主要是做一个后端配置数据管理者,没有太多功能

Docker-Harbor数据流向

docker私有仓库的过程:
  1. 所有的请求或热味的操作都会首先交给 proxy(反向代理)

  2. proxy 会先将请求转发给后端 core services

  3. core services包括 ui【web界面】、token【身份认证】、webhook【网站的一些服务功能 】

  4. 转发给 regiistry【镜像存储】,若需要下载镜像等权限操作,需要通过 core services中 token令牌的身份验证服务才行

  5. 每一次下载和上传 都会产生操作记录,生成日志 ,保存 databases中

  6. databases 记录保存镜像源信息以及用户与组身份 的信息,通过验证授权才能与允许相关操作

私有仓库指向私有仓库的方式有两种
1. /etc/dockerdaemon.josn
2. /usr/lib/systemd/system/docker.service添加: insecure-registrues   $harbor_ip (私有仓库的ip地址)
搭建本地私有仓库
#首先下载 registry 镜像
docker pull registry#在 daemon.json 文件中添加私有镜像仓库地址
vim /etc/docker/daemon.json
{"insecure-registries": ["192.168.86.44:5000"],						#添加,注意用逗号结尾"registry-mirrors": ["https://ae3f5qei.mirror.aliyuncs.com"]
}
systemctl restart docker.service#运行 registry 容器
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest#为镜像打标签
docker tag centos:7 192.168.86.44:5000/centos:v1#上传到私有仓库
docker push 192.168.86.44:5000/centos:v1#列出私有仓库的所有镜像
curl http://192.168.86.44:5000/v2/_catalog#出私有仓库的 centos 镜像有哪些tag
curl http://192.168.86.44:5000/v2/centos/tags/list#先删除原有的 centos 的镜像,再测试私有仓库下载
docker rmi -f 8652b9f0cb4c
docker pull 192.168.86.44:5000/centos:v1
部署 Docker-Compose 服务
1、下载或者上传 Docker-Compose
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version2、部署 Harbor 服务
(1)下载或上传 Harbor 安装程序
wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
(2)修改harbor安装的配置文件
vim /usr/local/harbor/harbor.cfg
--5行
hostname = 192.168.86.44
【修改,设置为Harbor服务器的IP地址或者域名】
---59行
admin/Harbor12345
harbor_admin_password = Harbor12345
【指定管理员的初始密码,默认的用户名/密码是】3、 启动 Harbor
cd /usr/local/harbor/
在配置好了 harbor.cfg 之后,执行 ./prepare 命令,为 harbor 启动的容器生成一些必要的文件(环境)
再执行命令 ./install.sh 【先删除registry容器】以 pull 镜像并启动容器4、查看 Harbor 启动镜像
cd /usr/local/harbor/
docker-compose ps

创建一个新项目
(1)浏览器访问:http://192.168.86.44 登录 Harbor WEB UI 界面,默认的管理员用户名和密码是 admin/Harbor12345(2)输入用户名和密码登录界面后可以创建一个新项目。点击“+项目”按钮(3)填写项目名称为“myproject-kgc”,点击“确定”按钮,创建新项目(4)此时可使用 Docker 命令在本地通过 127.0.0.1 来登录和推送镜像。默认情况下,Registry 服务器在端口 80 上侦听。
//登录 Harbor
docker login http://127.0.0.1
Useradd:admin
Password:Harbor12345//下载镜像进行测试
docker pull nginx//将镜像打标签
格式:docker tag 镜像:标签  仓库IP/项目名称/镜像名:标签
docker tag nginx:latest 127.0.0.1/ky30-kgc/nginx:v1//上传镜像到 Harbor
docker push 127.0.0.1/ky30-kgc/nginx:v1(5)在 Harbor 界面 myproject-kgc 目录下可看见此镜像及相关信息

 

 

相关文章:

docker- harbor私有仓库部署与管理

什么是 harbor harbor是一个开源的云原生镜像仓库,它允许用户存储、签名、和分发docker镜像。可以将 harbor 看作是私有的docker hub ,它提供了更新安全性和控制性,让组织能够安全的存储和管理镜像 harbor RBAC(基于角色访问控制…...

自动化测试的优缺点

自动化测试的优势 能够极大地提升测试的效率,测试人员可以迅速地在指定平台部署测试脚本且对相应功能进行测试。 “弱化”了软件测试人员个体差异对测试结果的影响。 提高整个测试团队的技能水平。 自动化测试的缺陷 自动化测试的缺陷在于:总是按照…...

深度学习基础知识 Dataset 与 DataLoade的用法解析

深度学习基础知识 Dataset 与 DataLoade的用法解析 1、Dataset2、DataLoader参数设置:1、pin_memory2、num_workers3、collate_fn分类任务目标检测任务 1、Dataset 代码: import torch from torch.utils import dataclass MyDataset(torch.utils.data.D…...

【ElasticSearch】深入探索 DSL 查询语法,实现对文档不同程度的检索,以及对搜索结果的排序、分页和高亮操作

文章目录 前言一、Elasticsearch DSL Query 的分类二、全文检索查询2.1 match 查询2.2 multi_match 查询 三、精确查询3.1 term 查询3.2 range 查询 四、地理坐标查询4.1 geo_bounding_box 查询4.2 geo_distance 查询 五、复合查询5.1 function score 查询5.2 boolean 查询 六、…...

使用wireshark解密ipsec ISAKMP包

Ipsec首先要通过ikev2协议来协商自己后续协商所用的加解密key以及用户数据的esp包用的加解密包。 ISAKMP就是加密过的ike-v2的加密包,有时候我们需要解密这个包来查看协商数据。如何来解密这样的包? 首先导出strongswan协商生成的各种key. 要能导出这些key&#…...

算法进阶-搜索

算法进阶-搜索 题目描述&#xff1a;给定一张N个点M条边的有向无环图&#xff0c;分别统计从每个点除法能够到达的点的数量 **数据规模&#xff1a;**1 < n < 3e4 **分析&#xff1a;**这里我们可以使用拓扑排序根据入边对所有点进行排序&#xff0c;排序后我们按照逆序&…...

时空智友企业流程化管控系统 sessionid泄露漏洞 复现

文章目录 时空智友企业流程化管控系统 sessionid泄露漏洞 复现0x01 前言0x02 漏洞描述0x03 影响平台0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 时空智友企业流程化管控系统 sessionid泄露漏洞 复现 0x01 前言 免责声明&#xff1a;请勿利用文章内的相关技术从…...

QT编程,QMainWindow、事件

目录 1、QMainWindow 2、事件 1、QMainWindow QMenuBar&#xff1a;菜单栏 QMenu: 菜单 QAction: 动作 QToolBar: 工具栏 QStatusBar: 状态栏 setWindowTitle("主窗口"); //: 前缀 文件名 setWindowIcon(QIcon(":/mw_images/10.png")); resize(640, 4…...

人工智能在教育上的应用2-基于大模型的未来数学教育的情况与实际应用

大家好&#xff0c;我是微学AI ,今天给大家介绍一下人工智能在教育上的应用2-基于大模型的未来数学教育的情况与实际应用&#xff0c;随着人工智能(AI)和深度学习技术的发展&#xff0c;大模型已经开始渗透到各个领域&#xff0c;包括数学教育。本文将详细介绍基于大模型在数学…...

C++学习day5

目录 作业&#xff1a; 1> 思维导图 2> 多继承代码实现沙发床 1>思维导图 2> 多继承代码实现沙发床 #include <iostream>using namespace std; //创建沙发类 class sofa { private:string sitting; public:sofa(){cout << "sofa的无参构造函数…...

1.软件开发-HTML结构-元素剖析

元素的嵌套 代码注释 ctrl/ URL url 统一资源定位符 一个给定的独特资源在web上的地址 URI...

QTableWidget 表格增删数据

QTableWidgetQTableWidgetQTableWidget部分使用方法&#xff0c;如在表格中插入或删除一行数据以及清空表格数据等。在添加数据时&#xff0c;设置了条件判断如正则表达式&#xff0c;若用户输入的数据不合法&#xff0c;则添加失败并提示用户错误的地方&#xff0c;便于用户修…...

Tableau:商业智能(BI)工具

Tableau入门 1、Tableau概述2、Tableau Desktop2.1、初识Tableau Desktop2.2、Tableau工作区2.3、数据窗格与分析窗格2.4、功能区和标记卡2.4.1、列和行功能区2.4.2、标记卡2.4.3、筛选器功能区2.4.4、页面功能区2.4.5、附加功能区、图例、控件 3、Tableau视图4、Tableau工作簿…...

【gmail注册教程】手把手教你注册Google邮箱账号

手把手教你注册Google邮箱账号 写在前面&#xff1a; 要注意&#xff0c;注册Google邮箱必须要确保自己能够 科学上网&#xff0c;如果暂时做不到&#xff0c;请先进行相关学习。使用的手机号是大陆&#xff08;86&#xff09;的。 在保证自己能够科学上网后&#xff0c;在浏…...

docker版jxTMS使用指南:数据采集系统的高可用性

本文讲解4.6版jxTMS中数据采集系统的高可用性&#xff0c;整个系列的文章请查看&#xff1a;4.6版升级内容 docker版本的使用&#xff0c;请查看&#xff1a;docker版jxTMS使用指南 4.0版jxTMS的说明&#xff0c;请查看&#xff1a;4.0版升级内容 4.2版jxTMS的说明&#xff…...

vue如何禁止通过页面输入路径跳转页面

要禁止通过页面输入路径跳转页面&#xff0c;你可以使用Vue Router的导航守卫&#xff08;navigation guards&#xff09;来拦截导航并阻止不希望的跳转。 下面是一种常见的方法&#xff0c;你可以在全局导航守卫&#xff08;global navigation guards&#xff09;中实现这个功…...

mac,linux环境的基础工具安装【jdk,tomcat】

安装 一 linux环境一&#xff09;、JDK安装卸载&#xff1a; 二&#xff09;、 tomcat 安装1、[下载](https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.63/bin/apache-tomcat-8.5.63.tar.gz)后&#xff0c;在目录 /usr/local/tomcat下&#xff0c;解压缩2、配置tomca…...

chrome窗口

chrome 窗口的层次&#xff1a; 父窗口类名&#xff1a;Chrome_WidgetWin_1 有两个子窗口&#xff1a; Chrome_RenderWidgetHostHWNDIntermediate D3D Window // 用于匹配 Chrome 窗口的窗口类的前缀。 onst wchar_t kChromeWindowClassPrefix[] L"Chrome_WidgetWin_…...

某快递公司Java一面

1.平衡二叉树和红黑树的区别&#xff1f; 平衡二叉树是一种二叉搜索树&#xff0c;其左子树和右子树的高度差不超过1&#xff0c;以确保在最坏情况下的查找效率是O(log n)。而红黑树是一种自平衡二叉搜索树&#xff0c;通过引入颜色标记&#xff08;红色和黑色&#xff09;来维…...

【C++ Primer Plus学习记录】指针——声明和初始化指针

指针用于存储值的地址&#xff0c;因此&#xff0c;指针名表示的地址。*运算符被称为间接值或解除引用运算符&#xff0c;将其应用于指针&#xff0c;可以得到该地址处存储的值。 例如&#xff0c;假设manly是一个指针&#xff0c;则manly表示的是一个地址&#xff0c;而*manl…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...