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

切换至root用户时,命令提示符颜色为白色,如何修改?

当我切换至root用户时&#xff0c;发现命令提示符里的内容全部为白色&#xff0c;如图所示&#xff1a; 这让人看着不愉快&#xff0c;上网先搜索下解决方案&#xff1a;【切换到 root 账户字体全是白的&#xff0c;怎么改颜色啊】- 百度贴吧&#xff0c;但是这个解决方案只是…...

设计模式——17. 状态模式

1. 说明 状态模式(State Pattern)是一种行为设计模式,它允许一个对象在其内部状态发生改变时改变其行为。状态模式将对象的状态封装成不同的状态对象,并将状态切换时的行为委托给当前状态对象。这样,对象在不同状态下具有不同的行为,而无需在对象本身中使用大量的条件语…...

系统架构设计:14 论软基于架构的软件设计方法(ABSD)的软件开发

目录 1 基于架构的软件设计(ABSD) 2 基于架构的软件开发过程 2.1 架构需求过程 2.2 架构设计过程</...

如何在 Spring Boot 中进行文件上传

在 Spring Boot 中进行文件上传 文件上传是Web应用程序中常见的功能之一&#xff0c;它允许用户将文件从客户端上传到服务器。Spring Boot提供了便捷的方式来处理文件上传&#xff0c;并且整合了Spring框架的强大功能&#xff0c;使文件上传变得相对简单。本文将介绍如何在Spr…...

Python 图形化界面基础篇:将应用程序打包为可执行文件

Python 图形化界面基础篇&#xff1a;将应用程序打包为可执行文件 引言 PyInstaller 简介步骤1&#xff1a;安装 PyInstaller 步骤2&#xff1a;创建 Python GUI 应用程序步骤3&#xff1a;使用 PyInstaller 打包应用程序 完整示例代码解释结论 引言 在开发完一个图形用户界面…...

Android 13.0 蓝牙遥控器确认键弹不出输入法的解决方法

1.概述 在android13.0设备定制化开发时,遥控器是使用红外遥控器,也有使用蓝牙遥控器的,所以出现的问题不一定相同,今天遇到个问题就是蓝牙遥控器在输入数据时弹不出输入法的问题 首选排除输入法的问题,安装其他的输入法,也是同样的问题,这样就确定是系统EditText控件相关…...

spring boot面试50问

目录 前言&#xff1a; 1. 什么是 Spring Boot&#xff1f; 2. 为什么要用SpringBoot&#xff1f; 3. SpringBoot与SpringCloud 区别&#xff1f; 4. Spring Boot 有哪些优点&#xff1f; 5. Spring Boot 的核心注解是哪个&#xff1f;它主要由哪几个注解组成的&#xff1…...

条例24~25(设计与声明)

条例24 若所有参数皆需要类型转换&#xff0c;请为此采用非成员函数 有时候让类型内成员函数支持隐式类型转换是不妥善的。比如当我们想在类内实现operator *&#xff08;&#xff09; 模拟乘法的时候。通常情况下表现良好&#xff0c;但若你想额外实现混合式运算。例如 int…...

Spring5应用之事务处理

作者简介&#xff1a;☕️大家好&#xff0c;我是Aomsir&#xff0c;一个爱折腾的开发者&#xff01; 个人主页&#xff1a;Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏&#xff1a;Spring5应用专栏_Aomsir的博客-CSDN博客 文章目录 参考文献前言事务…...

Python 中最常用的4种股票价格移动平均方法(三)

一、简介 移动平均线是各级交易者和投资者最广泛使用的技术指标之一。它们通过计算特定时期内的平均价格来帮助消除股票价格的固有波动性。移动平均线计算起来很简单,但也有更复杂的形式,旨在捕捉市场的更多细微差别。 这个由四部分组成的系列将讨论总共 4 种不同的移动平均方…...