docker harbor私有库
目录
一.Harbor介绍
二.Harbor的特性
三.Harbor的构成
四.Harbor构建Docker私有仓库
4.2在Server主机上部署Harbor服务(192.168.158.25)
4.2.1 这时候这边就可以去查看192.168.158.25网页
4.3此时可真机访问serverIP
4.4通过127.0.0.1来登陆和推送镜像
五.其他客户端上传镜像到Harbor
六.维护管理Harbor
创建Harbor用户
七.client操作
八.移除 Harbor 服务容器同时保留镜像数据/数据库
总结及扩展
一.Harbor介绍
- 有可视化的Web管理界面,可以方便管理Docker镜像,又提供了多个项目的镜像权限管理及控制功能
- Harbor是VMware公司开源的企业级Docker Registry项目
- Harbor以Docker 公司开源的Registry 为基础,提供了图形管理UI、基于角色的访问控制(Role Based AccessControl)、AD/LDAI们成以心宙计日志(Auditlogging)等企业用户需求的功能,同时还原生支持中文。
- Harbor的每个组件都是以Docker容器的形式构建的,使用docker-compose来对它进行部署。用于部署Harbor的docker-compose模板位于harbor/docker-compose.yml。
二.Harbor的特性
- 基于角色控制:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限。
- 基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制(同步)。
- 支持LDAP/AD:Harbor可以集成企业内部已有的AD/LDAP(类似数据库的一张表),用于对已经存在的用户认证和管理。
- 镜像删除和垃圾回收:镜像可以被删除,也可以回收镜像占用的空间。
- 图形化用户界面:用户可以通过浏览器来浏览,搜索镜像仓库以及对项目进行管理。
- 审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
- 支持 RESTful API:RESTful API 提供给管理员对于Harbor更多的操控,使得与其它管理软件集成变得更容易。
- Harbor和docker registry的关系:Harbor实质上是对docker registry做了封装,扩展了自己的业务模板。
三.Harbor的构成
Harbor在架构上主要有proxy、Registry、Core services、
Database(Harbor-db)、Log collector(Harbor-log)、
Job services六个组件。
- Proxy:是一个nginx的前端代理,Harbor的Registry、UI、Token服务等组件,都处在nginx反向代理后边。该代理将来自浏览器、docker clients的请求转发到后端不同的服务上。
- Registry:负责存储Docker镜像,并处理Docker push/pull命令。由于要对用户进行访问控制,即不同用户对Docker镜像有不同的读写权限,Registry会指向一个Token服务,强制用户的每次Docker pull/push请求都要携带一个合法的Token,Registry会通过公钥对Token进行解密验证。
- Core services:Harbor的核心功能,主要提供一下3个服务:
1、UI(harbor-ui):提供图形化界面,帮助用户管理Registry上的镜像(image),
并对用户进行授权。2、WebHook:为了及时获取Registry上image状态变化的情况,在Registry上配置WebHook,
把状态变化传递给UI模块。3、Token服务:负责根据用户权限给每个Docker push/pull命令签发Token.Docker客户端向Registry服务发起的请求,
如果不包含Docker Token,会被重定向到Token服务,获得Token后再重新向Registry进行请求。
- Database(harbor-db):为core services提供数据库服务,负责存储用户权限、审计日志、Docker镜像分组信息等数据。Docker数据存储在文件系统,但是分组信息存储在数据库。
- Job services:主要用于镜像复制,本地镜像可以被同步到远程Harbor实例上。
- Log collector(harbor-log):负责收集其他组件的日志到一个地方。
Harbor 的每个组件都是以 Docker 容器的形式构建的,因此,使用 Docker Compose 来对它进行部署。
总共分为7个容器运行,通过在docker-compose.yml所在目录中执行 docker-compose ps 命令来查看, 名称分别为:nginx、harbor-jobservice、harbor-ui、harbor-db、harbor-adminserver、registry、harbor-log。
其中 harbor-adminserver 主要是作为一个后端的配置数据管理,并没有太多的其他功能。harbor-ui 所要操作的所有数据都通过 harbor-adminserver 这样一个数据配置管理中心来完成
四.Harbor构建Docker私有仓库
- 通过Harbor创建Docker私有仓库
- 图形化管理Docker私有仓库镜像
| 主机 | 操作系统 | IP地址 | 软件 |
| server | CentOS7.6 | 192.168.158.25 | docker、docker-compose、harbor-offline-v1.1.2 |
| client | CentOS7.6 | 192.168.158.26 | docker |
4.2在Server主机上部署Harbor服务(192.168.158.25)
192.168.158.25 server端cd /usr/local
rz docker-compose
chmod +x docker-compose
mv docker-compose /usr/bin

rz harbor-offline-installer-v1.2.2.tgz
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/==配置Harbor参数文件==
vim /usr/local/harbor/harbor.cfg==第5行修改==
hostname = 192.168.158.25


sh /usr/local/harbor/install.sh

4.2.1 这时候这边就可以去查看192.168.158.25网页
网页打不开
以下方法可以解决

docker-cocker ps #查看服务docker-cocker up #从启下服务 再去查看下192.168.158.25网页要是网页 还是无法访问网站 那就是 虚拟机的问题init6 #重起下虚拟机docker-conker up #从启下服务这下就好了



docker ps
docker images



4.3此时可真机访问serverIP
192.168.158.25
用户名:admin
密码:Harbor12345




4.4通过127.0.0.1来登陆和推送镜像
- 此时可使用 Docker 命令在本地通过 127.0.0.1 来登录和推送镜像。默认情况下,
Register 服务器在端口 80 上侦听
#登陆
docker login -u admin -p Harbor12345 http://127.0.0.1#下载镜像进行测试
docker pull tomcat#镜像打标签
docker tag tomcat 127.0.0.1/test/tomcat:v1 #标签那个名字哦一定是自己的项目名称#上传镜像到Harbor
docker push 127.0.0.1/test/tomcat:v1 #这边也是一样的



五.其他客户端上传镜像到Harbor
- 以上操作都是在 Harbor 服务器本地操作。如果其他客户端上传镜像到 Harbor,就会报
如下错误。出现这问题的原因 Docker Registry 交互默认使用的是 HTTPS,但是搭建私有镜
像默认使用的是 HTTP 服务,所以与私有镜像交互时出现以下错误。


解决方案:
vim /usr/lib/systemd/system/docker.service
添加 --insecure-registry 192.168.158.25

systemctl daemon-reload
systemctl restart dockerps:如果重启docker失败的话就把守护进程里的地址指向那行给删了


解决方法:
[root@centos6 ~]# curl 192.168.158.25:80
curl: (7) Failed connect to 192.168.158.25:80; 拒绝连接[root@centos6 ~]# docker ps -a #查看所有容器id[root@centos6 ~]# docker mf -f [输入容器id] #一共七个全删掉#启动 -f指定调度用文件 -d后台启动
[root@centos6 ~]# docker-compose -f docker-compose.yml up -d [root@centos6 ~]# docker ps -a[root@centos6 ~]# curl 192.168.158.25:80 #访问成[root@centos6 ~]# docker login -u admin -p Haebor12345 nttp://182.168.158.25





docker pull nginx
docker tag nginx:latest 192.168.158.25/test/nginx:v1
docker push 192.168.158.25/test/nginx:v1


图形界面查看

六.维护管理Harbor
- 可以使用docker-compose 来管理 Harbor。一些有用的命令如下所示,必须在与
docker-compose.yml 相同的目录中运行。 - 修改Harbor.cfg 配置文件
要更改 Harbour 的配置文件时,请先停止现有的 Harbour 实例并更新 Harbor.cfg;然
后运行 prepare 脚本来填充配置;最后重新创建并启动 Harbour 的实例。
#卸载
docker-compose down -v#编辑配置文件
vim harbor.cfg#填充配置
./prepare#启动Harbor
docker-compose up -d#如果报错
解决思路
关闭防火墙、重启docker
systemctl stop firewalld
setenfore 0
systemctl restart docker

创建Harbor用户


项目管理员和开放人员具有权限
访问只读权限

七.client操作
docker logout 192.168.158.25
docker login 192.168.158.25
用户名
密码docker images
docker rmi 192.168.158.25/test/nginx:v1
docker pull 192.168.158.25/test/nginx:v1



八.移除 Harbor 服务容器同时保留镜像数据/数据库
- 在server上进行操作
docker-compose down -v#如果需要重新部署,需要移除Harbor服务容器全部数据
#持久数据,如镜像,数据库等在宿主机的/data目录下,日志在宿主机的/var/log/Harbor目录下
rm -rf /data/database
rm -rf /data/registry
总结及扩展
1.docker harbor私有仓库操作过程
(1)所有请求或认为的操作都会首先交给proxy(反向代理)
(2)proxy会将请求转发给后端core services
(3)UI、token(身份验证服务)、wehook(网站的一些服务功能)
(4)转发给registry(镜像存储),若需下载镜像等权限操作,需通过token令牌的身份验证服务才可以
(5)每一次下载和上传都产生操作记录,生成日志,保存在database中
(6)database记录保存镜像的元信息以及用户与组的信息,通过验证授权才能允许相关操作
2.使用堡垒机的方式流程

相关文章:
docker harbor私有库
目录 一.Harbor介绍 二.Harbor的特性 三.Harbor的构成 四.Harbor构建Docker私有仓库 4.2在Server主机上部署Harbor服务(192.168.158.25) 4.2.1 这时候这边就可以去查看192.168.158.25网页 4.3此时可真机访问serverIP 4.4通过127.0.0.1来登陆和推送镜…...
strcmp 的使用和模拟
目录 函数介绍: 头文件: 语法: 代码演示: 函数模拟: 函数介绍: strcmp是比较大小的函数。从字符串开始进行比较,如果两个相同位置的字符相同,那么继续往下进行比较,…...
军用加固计算机
军用加固计算机是为满足军事应用需求而设计的一种高性能、高安全性的计算机。与普通计算机相比,它具有以下特点: 加固材料:军用加固计算机通常采用钢板、铝合金等材料进行加固,能够承受较大的冲击和振动,保证在恶劣环境…...
block层:5. 请求分配
请求相关 源码基于5.10 1. 分配请求 static struct request *__blk_mq_alloc_request(struct blk_mq_alloc_data *data) {// 请求队列struct request_queue *q data->q;// 电梯struct elevator_queue *e q->elevator;u64 alloc_time_ns 0;unsigned int tag;// 判断…...
L1-038 新世界(Python实现) 测试点全过
题目 这道超级简单的题目没有任何输入。 你只需要在第一行中输出程序员钦定名言“Hello World”,并且在第二行中输出更新版的“Hello New World”就可以了。 输入样例: 无输出样例: Hello World Hello New World题解 """…...
【hello git】初识Git
目录 一、简述Git 二、Linux 下 Git 的安装:CentOS 2.1 基本命令 2.2 示例: 三、Linux 下 Git 的安装:ubuntu 3.1 基本命令 3.2 示例: 一、简述Git Git :版本控制器,记录每次的修改以及版本迭代的一个管…...
Vueelementui动态渲染Radio,Checkbox,笔记
<div id"app"><el-card style"width: 300px"><el-form label-position"top" size"mini"><el-form-item label"标题"><el-input></el-input></el-form-item><el-form-item v-f…...
SpringDataRedis 使用
1. SpringDataRedis 特点2. 使用 SpringDataRedis 步骤3. 自定义 RedisTemplate 序列化4. SpringDataRedis 操作对象 1. SpringDataRedis 特点 提供了对不同 Redis 客户端的整合(Lettuce 和 Jedis)提供了 RedisTemplate 统一 API 来操作 Redis支持 Redi…...
Redis全局命令与数据结构
"那篝火在银河尽头~" Redis-cli命令启动 现如今,我们已经启动了Redis服务,下⾯将介绍如何使⽤redis-cli连接、操作Redis服务。客户端与服务端交互的方式有两种: ● 第⼀种是交互式⽅式: 后续所有的操作都是通过交互式的⽅式实现,…...
LibreOffice新一代的办公软件for Mac/Windows免费版
LibreOffice是一款免费、开源的办公软件套件,可在多个操作系统上运行,包括Windows、Mac和Linux。它提供了一系列功能强大的办公工具,包括文档处理、电子表格、演示文稿、数据库管理等。 LibreOffice的界面简洁直观,与其他流行的办…...
Python|OpenCV-读取视频,显示视频并保存视频(3)
前言 本文是该专栏的第3篇,后面将持续分享OpenCV计算机视觉的干货知识,记得关注。 在使用OpenCV处理视频的时候,不论是摄像头画面还是视频文件,通常情况下都要使用VideoCapture类来进行每一帧图像的处理。对于OpenCV而言,只要使用视频文件作为参数,它就可以打开视频文件…...
上传WSL项目到gitlab
上传WSL项目到gitlab 设置ssh将SSH公钥添加到Gitlab 将WSL上的代码上传到gitlab确保在WSL环境中安装了git下面是上传代码到GitLab的具体步骤: 可能遇到的各种错误 设置ssh Gitlab添加SSH KEY 什么是SSH ? SSH 是一种网络协议,具备协议级别的认证及会话…...
从0开始做yolov5模型剪枝
文章目录 从0开始做yolov5模型剪枝 ****1 前言2 GitHub取源码3 原理3.1 原理3.2 network slimming过程 4 具体实施步骤4.1 安装虚拟环境4.2 配置参数4.2.1 数据集参数4.2.2 模型结构参数4.2.3 train.py中的参数 4.3 正常训练4.3.1 准备4.3.2 训练及问题解决 4.4 稀疏化训练4.4.…...
飞天使-k8s基础组件分析-安全
文章目录 名称空间解释访问kubernetes API的控制RBAC的介绍 kubeconfig用户的创建集群默认角色 给组创建授权针对pod配置服务账户参考文档 名称空间解释 名字是啥? 答:集群中每个对象的名称对于该类型的资源都是唯一的。并且每一个对象在整个集群中也有…...
Mysql安装使用
Mysql下载: MySQL :: Download MySQL Community Server Mysql解压: 解压后在根目录新建data文件夹和新建my.ini文件 my.ini文件内容如下: 注意:记得修改目录位置 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 basedirD:\\mysql-5.7.30…...
聚类分析 | MATLAB实现基于LP拉普拉斯映射的聚类可视化
聚类分析 | MATLAB实现基于LP拉普拉斯映射的聚类可视化 目录 聚类分析 | MATLAB实现基于LP拉普拉斯映射的聚类可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 聚类分析 | MATLAB实现基于LP拉普拉斯映射的聚类可视化,聚类结果可视化,MATLAB程…...
uniapp 使用 mui-player 插件播放 m3u8/flv 视频流
在UniApp中使用mui-player插件播放M3U8/FLV视频流,可以按照以下步骤进行操作: 1. 安装mui-player插件 :在UniApp项目根目录下,使用命令行工具执行以下命令安装mui-player插件: npm install mui-player --save2. 在需…...
大数据课程K4——Spark的DAGRDD依赖关系
文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Spark的DAG; ⚪ 掌握Spark的RDD的依赖关系; ⚪ 了解Spark对于DAG的Stage的划分; 一、DAG概念 1. 概述 Spark会根据用户提交的计算逻辑中的RDD的转换和动作来生成RDD之间的依赖关…...
disable 禁用元素后无法触发点击事件
业务需求点击被禁用的输入框触发事件 在被禁用元素上套一层div div上绑定事件 原本是不需要加事件穿透即可触发 但是最近谷歌更新触发不了 加一个事件穿透就好了 核心代码 style"pointer-events:none"style“pointer-events:none” 事件穿透 整体代码 <el-table-…...
uni-app开启gzip配置
指令:npm install webpack4.46.0 --save-dev 指令:npm install compression-webpack-plugin6.1.1 --save-dev vue.config.js const CompressionWebpackPlugin require(compression-webpack-plugin);module.exports {configureWebpack: config > {…...
MATLAB实战:用冲激响应不变法设计IIR低通滤波器,手把手教你滤除信号噪声
MATLAB实战:用冲激响应不变法设计IIR低通滤波器,手把手教你滤除信号噪声 在工程实践中,信号噪声无处不在。无论是传感器采集的数据,还是音频信号中的背景干扰,噪声都会严重影响后续的分析和处理。IIR(无限脉…...
STM32G4项目实战:巧用MCP2518FD实现多路CAN FD通信,附完整工程源码解析
STM32G4项目实战:巧用MCP2518FD实现多路CAN FD通信,附完整工程源码解析 在工业控制和车载网络领域,CAN FD总线因其更高的传输速率和更大的数据负载能力正逐步取代传统CAN总线。STM32G4系列微控制器内置3路FDCAN接口,但面对需要5路…...
Google I/O 2026之外,声网搞定弱网通话难题
作为每日穿梭地铁的通勤上班族,我对日常使用的 AI 工具,始终只有一个核心诉求,那就是弱网场景下运行稳定,不会轻易出现故障。此前观看 2026 谷歌开发者大会时,我便心生期许,盼望日常通勤途中,也…...
量子计算在DNA序列相似性比较中的应用与优化
1. 量子计算与DNA序列相似性比较的背景DNA序列相似性比较是生物信息学和比较基因组学中的基础性任务。想象一下,你手上有两串由A、T、G、C四个字母组成的长字符串,如何判断它们的相似程度?这个问题看似简单,但在实际应用中却极具挑…...
LangChain-Chatchat 开发与应用(九) 性能优化实战-从能用到好用的调优之路
性能优化实战:从"能用"到"好用"的调优之路 标签:性能优化 | 并发 | 显存 | 缓存 | 监控 | 调优 一、性能问题的"众生相" 你的 Chatchat 系统是不是遇到过这些情况? 一个人用挺快,三个人同时问就卡…...
Supermask:冻结权重+二值掩码的神经网络子结构发现方法
1. 什么是 Supermasks?——不是“超级面具”,而是神经网络里的“先天直觉” 你有没有试过教一个刚学会走路的孩子认苹果?你不需要从零开始教他光谱分析、细胞结构或者植物分类学,只要拿个红彤彤的苹果在他眼前晃一晃,再…...
UE5 GAS修改Attribute的四种正确方式与原理
1. 为什么改Attribute不是简单赋值,而是要走GAS的整套流程 在UE5中用Gameplay Ability System(GAS)做RPG,很多人刚上手时都会卡在一个看似最基础的问题上: “我想让角色血量100,直接写 Attributes.Health…...
qData 数据中台开源版 v1.5.2 发布:建模资产双升级,全方位提升企业数据治理效率
qData 数据中台开源版 v1.5.2 发布:建模标准化、资产精细化,全方位提升企业数据治理效率在企业数字化建设不断深化的今天,数据中台已演变为支撑企业经营决策、业务创新与数据治理落地的核心基础设施。qData 数据中台开源版 v1.5.2 正式发布&a…...
哪个工具能降重降AI?亲测知网维普aigc检测效果,重复率和ai率不到10%!
2025 年 12 月 25 日知网 AIGC 检测系统升级,2026 年 4 月 27 日维普 AI 率检测平台升级…2026 毕业季,各大主流 AIGC 检测软件陆续升级系统,识别 AI 痕迹更加精准。 临近毕业,同学们看者飘红的 AIGC 检测报告、纷繁复杂的降 AI 系…...
终极自动化指南:如何用AALC解放你的Limbus Company游戏时间
终极自动化指南:如何用AALC解放你的Limbus Company游戏时间 【免费下载链接】AhabAssistantLimbusCompany AALC,PC端Limbus Company小助手。AALC,Limbus Company Assistant on PC 项目地址: https://gitcode.com/gh_mirrors/ah/AhabAssista…...
