Docker搭建Harbor

1.什么是Harbor

  • Harbor 是 vMware 公司开源的企业级 Docker 〖egistry 项日,其日标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。
  • Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理UI 、基于角色的访问控制(Role Based Accesscontrol)、AD/LDAP 集成、以及审计日志(Auditlogging)等企业用户需求的功能,同时还原生支持中文。
  • Harbor 的每个组件都是以 Docker 容器的形式构建的,使用 docker-compose 米对它进行部署。用于部署 Harbor 的 docker-compose 模板位于 harbor/docker-compose.ymil。

2.Harbor的特性

1.基于角色控制:用户和仓库都是基于项日进行组织的,而用户在项目中可以拥有不同的权限。

2.基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制(同步)

3.支持LDAP/AD:Harbor 可以集成企业内部已有的 AD/LDAP(类似数据库的一张表),用于对已经存在的用户认证和管理

4.镜像删除和垃圾回收:镜像可以被删除,也可以回收镜像占用的空间。

5.图形化用户界面:用户可以通过浏览器来浏览,搜索镜像仓库以及对项目进行管理。

6.审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。

7.支持 RESTful API:RESTful API 提供给管理员对于 Harbor 更多的操控,使得与其它管理软件集成变得更容易。

8、Harbor和docker registry的关系:Harbor实质上是对docker registry做了封装,扩展了自己的业务模板。

3.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 服务发起的请求, 如果不包含 Token,会被重定向到 Token 服务,获得 Token 后再重新向 Registry 进行请求。

●Database(harbor-db):为core services提供数据库服务,负责储存用户权限、审计日志、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 这样一个数据配置管理中心来完成。

4.部署 Docker-Compose 服务

1)修改配置文件
Docker-Compose一般在下载docker时已经安装,将他复制到/usr/local/bin/目录即可使用find / -name docker-compose 
cp /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/
docker-compose -v   #查看版本

vim harbor.yml

2)启动Harbor 
修改完配置文件后
./install.sh安装完成后就可以访问页面

3)新建项目

访问级别公开:项目中的镜像所有人都能下载,未登录仓库的用户都能下载

访问级别私有:必须先登录用户,而且必须是项目的成员才能下载

 

4)新建用户 

两个项目中分别添加成员并设置权限

 

 5)上传镜像
vim /etc/docker/daemon.jsonsystemctl reload docker.service   #重新加载服务
docker info                       

#登陆仓库
docker login -u admin -p Harbor12345 http://192.168.86.90

根据Harbor推送镜像的命令操作 

docker tag centos:7 192.168.86.90/decp/centos7
docker push 192.168.86.90/decp/centos7Harbor查看
 6)下载镜像

准备一台docker服务器,对接好仓库地址

vim /etc/docker/daemon.jsonsystemctl reload docker.service

7)私有项目下载镜像 

私有项目直接下载镜像是不成功的,需要先登录才能下载

docker login -u cap -p Cap12345 http://192.168.86.90
docker pull 192.168.86.90/cap/centos7:latest

 

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

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

相关文章

Web开发:ASP.NET CORE前后端交互之AJAX(含基础Demo)

目录 一、后端 二、前端 三、代码位置 四、实现效果 五、关键的点 1.后端传输给前端: 2.前端传输给后端 一、后端 using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.AspNetCore.Mvc.Rendering; using WebAppl…

MongoDB教程(十二):MongoDB数据库索引

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、MongoD…

uni-app学习HBuilderX学习-微信开发者工具配置

HBuilderX官网:简介 - HBuilderX 文档 (dcloud.net.cn)https://hx.dcloud.net.cn/ uni-app官网: uni-app官网 (dcloud.net.cn)https://uniapp.dcloud.net.cn/quickstart-hx.htmlHBuilder下载安装:打开官网 uni-app项目的微信开发者工具配置…

人工智能正在影响无源和互连设计

人工智能 (AI) 应用通常涉及大型数据集。工作负载可能需要多个分布式 CPU 和 GPU 实时相互通信。这是高性能计算 (HPC) 架构的本质。 在处理元件之间路由高速数字信号引入了芯片到电路板和电路板到电路板的连接。通信协议和物理标准已经开发出来以满足高速要求,通常…

基于X86+FPGA+AI的远程医疗系统,支持12/13代 Intel Core处理器

工控主板:支持12/13代 Intel Core处理器,适用于远程医疗系统 顺应数字化、网络化、智能化发展趋势,国内医疗产业改革正在积极推进,远程医疗、智慧医疗等新模式新业态创新发展和应用,市场空间不断扩大,而基…

界面控件DevExpress Blazor UI v24.1 - 发布全新TreeList组件

DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。 DevExpress Blazor控件目前已经升级…

园区AR导航系统构建详解:从三维地图构建到AR融合导航的实现

随着现代园区规模的不断扩大与功能的日益复杂,传统的二维地图导航已难以满足访客高效、精准定位的需求。园区内部错综复杂的布局、频繁变更的商户位置常常让访客感到迷茫,造成寻路上的时间浪费。园区AR导航系统以创新的技术手段,破解了私域地…

【Apache Doris】周FAQ集锦:第 16 期

【Apache Doris】周FAQ集锦:第 16 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目! 在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户…

Linux网络——套接字与UdpServer

目录 一、socket 编程接口 1.1 sockaddr 结构 1.2 socket 常见API 二、封装 InetAddr 三、网络字节序 四、封装通用 UdpServer 服务端 4.1 整体框架 4.2 类的初始化 4.2.1 socket 4.2.2 bind 4.2.3 创建流式套接字 4.2.4 填充结构体 4.3 服务器的运行 4.3.1 rec…

ROS2从入门到精通2-3:机器人3D物理仿真Gazebo与案例分析

目录 0 专栏介绍1 什么是Gazebo?2 Gazebo架构2.1 Gazebo前后端2.2 Gazebo文件格式2.3 Gazebo环境变量 3 Gazebo安装与基本界面4 搭建自己的地图4.1 编辑地图4.2 保存地图4.3 加载地图 5 常见问题 0 专栏介绍 本专栏旨在通过对ROS2的系统学习,掌握ROS2底…

车载通信与DDS标准解读系列(5):DDS-Security

DDS-Security协议与DDS协议、DDSI-RTPS协议、DDS-XTypes协议共同作为DDS协议簇中的核心协议。本协议基于其它三份核心协议,对系统中各交互环节的认证加密等措施进行规范化,保障用户发现和数据传递的安全性。协议于2016年发布v1.0,目前最新版本…

香橙派AIpro-携手华为-为AI赋能

文章目录 香橙派AIpro-携手华为-为AI赋能开箱和功能介绍开箱功能介绍 环境搭建镜像烧录进入系统 测试项目YOLOv5部署YOLOv5识别单张图片实时识别视频使用Ascend测试yolov5 产品评价 香橙派AIpro-携手华为-为AI赋能 今天新入手了一款香橙派AIPro,让我们一起跟着文章…

【Linux】线程——线程池、线程池的实现、线程安全的线程池、单例模式的概念、饿汉和懒汉模式、互斥锁、条件变量、信号量、自旋锁、读写锁

文章目录 Linux线程7. 线程池7.1 线程池介绍7.2 线程池的实现7.3 线程安全的线程池7.3.1 单例模式的概念7.3.2 饿汉和懒汉模式 8. 常见锁使用汇总8.1 互斥锁(Mutex)8.2 条件变量(Condition Variable)8.3 信号量(Semaph…

PostgreSQL的逻辑架构

一、PostgreSql的逻辑架构: 一个server可以有多个database;一个database有多个schema,默认的schema是public;schema下才是对象,其中对象包含:表、视图、触发器、索引等;与user之间的关系&#x…

【信号频率估计】MVDR算法及MATLAB仿真

目录 一、MVDR算法1.1 简介1.2 原理1.3 特点1.3.1 优点1.3.2 缺点 二、算法应用实例2.1 信号的频率估计2.2 MATLAB仿真代码 三、参考文献 一、MVDR算法 1.1 简介 最小方差无失真响应(Mininum Variance Distortionless Response,MVDR)算法最…

PWM再理解(1)

前言 昨天过于劳累,十点睡觉,本来想梳理一下PWM,今天补上。 PWM内涵 PWM全称:Pulse Width Modulation,也就是脉宽调制的意思,字面意思理解就是对脉冲的宽度进行改变。准确就是通过数字输出对模拟电路进行…

Artix7系列FPGA实现SDI视频编解码+UDP以太网传输,基于GTP高速接口,提供工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本博已有的以太网方案本博已有的FPGA图像缩放方案本方案的缩放应用本方案在Xilinx--Kintex系列FPGA上的应用本方案在Xilinx--Zynq系列FPGA上的应用 3、详细设计方案设计原理框图SDI 输入设备Gv8601a 均衡…

ChaosMeta for AI:混沌工程让AI稳定性更上一层楼

作者:刘凇杉 在今天的AI时代,AI系统的架构愈发复杂,其稳定性、资源利用率以及故障自愈能力也显得尤为重要。如果我们在实际运行中遇到问题再去修复,不仅成本高,还会对用户体验造成影响。混沌工程则是通过主动暴露和解…

「Vue组件化」封装i18n国际化

前言 在Vue应用中实现国际化(i18n),通常需要使用一些专门的库,比如vue-i18n。本文主要介绍自定义封装i18n,支持Vue、uniapp等版本。 设计思路 一、预期效果 二、核心代码 2.1 i18n.xlsx文件准备 2.2 脚本执行 根目录main.js根目录locali18n.xlsxnode main.jsmain.js 文件…

昇思25天学习打卡营第15天|两个分类实验

打卡 目录 打卡 实验1:K近邻算法实现红酒聚类 数据准备 模型构建--计算距离 计算演示 模型预测 实验2:基于MobileNetv2的垃圾分类 任务说明 数据集 参数配置(训练/验证/推理) 数据预处理 MobileNetV2模型搭建 Mobile…