Docker的私有仓库Harbor

Harbor概述

1.Harbor定义

私有,自定义用户的形式登陆仓库,拉取或者上传镜像。(内部管理的用户)

Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。

2.Docker Harbor的特性

(1)、基于角色进行控制,用户和仓库都是基于项目进行的,用户在每个项目中都可以拥有不同的权限;
(2)、基于镜像,在不同的harbor实例之间进行复制;
(3)、harbor自带一个数据库,AD/LDAP(类似于数据库中的表),对已经存在的用户进行认证和管理;
(4)、镜像删除和垃圾回收,仓库中的镜像可以被删除(基于权限控制),也可以回收镜像占用的空间;
(5)、图形化界面的,用户可以直接通过浏览器来对镜像仓库进行管理;
(6)、审计管理,所有对镜像仓库的操作都可以被记录溯源;
(7)、支持API操作,管理员可以基于API调用接口,和更多的其他的程序进行集成。
     端口:主机和主机之间的通信
     API接口:应用和应用之间的接口  

3.Docker Harbor的组件

Proxy:安装完了harbor之后,他会自动生成一个nginx的容器,自动对外映射,仓库默认80端口,nginx作为前端的代理,在harbor当中,registry,UI,TOKEN,都在nginx的反向代理后面。通过nginx的代理,可以把请求转发到后端不同的应用。
Registry:负责存储镜像,docker pull/push的命令都由其负责。用户进行访问控制,不同的用户对docker镜像有不同的读写权限。 Registry每次都会指向一个不同的token,token强制用户每次的pull、push都必须带一个合法的token(公钥对),Registry会通过公钥对,进行解密验证,身份合法才能指定操作。
●CORE SERVICE:harbor的核心功能,主要提供以下3个服务:
(1)、UI:提供图形化界面
(2)、Webhook:仓库上所有镜像的变化(增删改),都会传送给webhook,以显示在UI界面上。 (3)、Token服务:签发每一次push和pull的公钥对,用来和仓库之间进行权限认证。
●Database:harbor-db,为core services提供数据库存储服务,负责存储用户权限,审计日志,docker 镜像的分组和项目信息。
Job service:主要用于镜像的复制,本地镜像可以同步到远程harbor上。
Log collector(harbor-log):统一日志收集工具。

Haobor都是基于docker 容器化部署的,docker-compose一件编排、安装。

Harbor部署

1.实验组件

20.0.0.10:docker1  安装仓库
20.0.0.20:docker2  客户端
20.0.0.30:docker3  安装仓库、实现远程同步

2.部署Docker-Compose服务

docker1:
cd /opt
--上传docker-compose-linux-x86_64--
mv docker-compose-linux-x86_64 docker-compose
mv docker-compose /usr/local/bin/
chmod 777 /usr/local/bin/docker-compose
docker-compose -v

3.部署Harbor服务

cd /opt
--上传harbor-offline-installer-v2.8.1.tgz--
tar -xf harbor-offline-installer-v2.8.1.tgz -C /usr/local
cd /usr/local/harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
--5--
hostname: 20.0.0.10--12--
注释掉https
# 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--34--
harbor_admin_password: 123456

4.启动Harbor

cd /usr/local/harbor/#编译环境
./prepare./install.sh浏览器访问:20.0.0.10

Harbor实操

1.本地上传镜像

docker pull nginx:1.22.0
docker tag nginx:1.22.0 127.0.0.1/library/nginx:pup1
docker login -u admin -p 123456 http://127.0.0.1
docker push 127.0.0.1/library/nginx:pup1

2.新建项目本地上传镜像

新建项目

 创建用户

准备镜像

docker logout
docker login -u user-test -p Pupcarrot666 http://127.0.0.1
docker tag nginx:1.22.0 127.0.0.1/pup-project/nginx:pup2
docker images

 项目中新建成员

角色:
访客:只有读权限
开发者:读写权限,但是没有删除权限
维护人员:读写权限,修改其他配置项的权限
项目人员:对该项目拥有所有权限

推送镜像 

docker push 127.0.0.1/pup-project/nginx:pup2

3.其他客户端上传镜像

docker2:
vim /usr/lib/systemd/system/docker.service
--13修改--
ExecStart=/usr/bin/dockerd --insecure-registry 20.0.0.10
#Docker Registry交互默认使用https,而搭建私有镜像默认使用httpsystemctl daemon-reload
systemctl restart docker
docker login -u user-test -p Pupcarrot666 http://20.0.0.10
docker pull tomcat
docker tag tomcat:latest 20.0.0.10/pup-project/tomcat:pup3
docker push 20.0.0.10/pup-project/tomcat:pup3

4.复制仓库

部署Docker-Compose服务

docker3:
cd /opt
--上传docker-compose-linux-x86_64--
mv docker-compose-linux-x86_64 docker-compose
mv docker-compose /usr/local/bin/
chmod 777 /usr/local/bin/docker-compose
docker-compose -v

部署Harbor服务

cd /opt
--上传harbor-offline-installer-v2.8.1.tgz--
tar -xf harbor-offline-installer-v2.8.1.tgz -C /usr/local
cd /usr/local/harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
--5--
hostname: 20.0.0.30--12--
注释掉https
# 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--34--
harbor_admin_password: 654321

启动Harbor

cd /usr/local/harbor/#编译环境
./prepare./install.sh浏览器访问:20.0.0.30

仓库管理新建目标 

复制管理新建规则 

开始复制 

查看复制结果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数学建模】《实战数学建模:例题与讲解》第十讲-时间序列预测(含Matlab代码)

【数学建模】《实战数学建模:例题与讲解》第十讲-时间序列预测(含Matlab代码) 基本概念移动平均(Moving Average, MA):指数平滑法(Exponential Smoothing):季节性调整(Seasonal Adju…

SpringCloud系列(六)| 聊聊负载均衡

一、负载均衡概述 上一篇文章中,我们在集成OpenFeign的过程中提示我们需要加入了一个依赖就是: spring-cloud-starter-loadbalancer。 顾名思义,这个包的作用就是用来做负载均衡的。 简单解释一下什么是负载均衡,就是当我们的服…

Java8新特性:Lambda表达式

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 本…

AI 搜索将如何影响 SEO

用户可以与之交互的 AI 搜索结果是肯定的。搜索营销人员要么对此感到生气,什么都不做,要么他们可以调查即将发生的事情并做好准备。 Google SGE 和 Bing 提供了相当相似的 AI 方法,是传统搜索和聊天机器人的混合体。 但这并不一定是当今 AI…

HarmonyOS--基础组件Text

Text组件 可以包含Span子组件。 接口 Text(content? : string | Resource) string: Text(我是ttttt) Resource: Text($r(app.string.aaaaaa)) 先找限定词目录,找不到内容 找base目录 属性 除支持通用属性外,还支持以下属性: 名称 参数…

全国合作商标服大赛决赛完整规则流程

本文是全国合作商标服大赛决赛完整规则流程,有需要的朋友可以参考下。 一、抢答比拼 1、政策管理考核题 系统评分。抢答题共15题/条线:单选10题,多选5题,基础分100分 单选答对10分/答错-5分,多选答对20分/答错-10分…

Mozilla 推出 Solo:借助 AI 帮助零编程用户创建网站

Mozilla 近日推出名为 Solo 的全新项目,面向没有任何编程经验的用户,通过融入 AI 能力,所创建的网站可以媲美专业开发者的开发效果。 Mozilla 表示该项目主要针对中小型企业、个体户,在官方演示中,用户只需要输入文本、…

SAP ABAP 使用cl_md_bp_maintain=>maintain更新BP税号CN0的数据,更新结果都会变成CN5类型问题处理

SAP ABAP 使用cl_md_bp_maintain>maintain更新BP税号CN0的数据,更新结果都会变成CN5类型,CN1类型一切正常。 1、BP税号 2、跟踪方法中代码 查看底层逻辑,发现CN0都被强制替换成CN5了,BP GUI界面还能正常使用CN0. 查询NOTES&a…

QT -CloudViewer工具

QT -CloudViewer工具 一、演示效果二、关键程序三、程序下载 一、演示效果 二、关键程序 void CloudViewer::doOpen(const QStringList& filePathList) {// Open point cloud file one by onefor (int i 0; i ! filePathList.size(); i) {timeStart(); // time startmycl…

Layui继续学习

1、简单评论区代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>社区评论区</title> <link rel"stylesheet" href"https://cdn.staticfile.org/layui/2.6.8/css/…

1+X大数据平台运维职业技能等级证书中级

hadoop&#xff1a; 由于我的功能限制&#xff0c;我无法直接为您执行这些操作或提供实际的截图。但我可以为您提供一步步的指导&#xff0c;帮助您完成这些任务。 1. 解压JDK安装包到“/usr/local/src”路径&#xff0c;并配置环境变量。 - 解压JDK&#xff1a;tar -zxf jd…

CSS盒模型 盒子尺寸问题

什么是盒模型 CSS盒模型分为用来放置内容的content区域&#xff0c;用来调整内容和边框距离的padding区域。用来限制盒子边界的border区域以及用于调整盒子之间距离的margin区域。现在去掉margin&#xff0c;只考虑盒子内部的尺寸问题。 我们先来制作一个盒子。 <!DOCTYPE…

芸鹰蓬飞:抖店的运营技巧是什么?

抖店&#xff0c;作为抖音平台上的电商业务&#xff0c;为商家提供了一个全新的销售渠道。然而&#xff0c;要成功运营抖店&#xff0c;商家需要掌握一定的方法和技巧。下面&#xff0c;我们就来详细介绍一下抖店的运行方式。 商品选择&#xff1a;首先&#xff0c;商家需要选择…

单片稳压集成电路78LXX系列——固定的电压输出,适用于需100mA电源供给的应用场合(网络产品,声卡和电脑主板等产品)

78LXX系列是一款单片稳压集成电路&#xff0c;它们有一系列固定的电压输出&#xff0c;适用于需100mA电源供给的应用场合。78LXX系列采用T0-92和SOT-89-3L的封装形式。 主要特点&#xff1a; ● 最大输出电流为100mA ● 输出电压为3.3V. 5V. 6V. 8V、9V、10V、 12V和15V ● 热…

git查看commit提交记录详情

相关的命令 git log&#xff1a;查看所有的commit提交记录&#xff1b;git show&#xff1a; 查看提交的详情&#xff1b; 首先&#xff0c;需要通过git log显示所有commit记录&#xff1a; 查看最新的commit&#xff1a;git show查看指定commit的所有修改&#xff1a;git s…

Zxing库的使用⭐️实现给自己的博客主页生成一张二维码链接,有源码可以直接复制到本地执行

目录 前言 一、简介 二、本地实现 2.1 引入依赖&#xff08;根据自己springboot项目来&#xff09; 2.2 实现类 三、运行一次 前言 小伙伴们大家好&#xff0c;自从地铁上刷到Zxing库的使用后&#xff0c;一直想本地部署玩一玩 一、简介 ZXing&#xff08;全称为 Zebra Cr…

Mac搭建Frida逆向开发环境

一、简介 Frida是一种基于Python+JavaScript的动态分析工具,可以用于逆向开发、应用程序的安全测试、反欺诈技术等领域,本质是一种动态插桩技术。Frida主要用于在已安装的应用程序上运行自己的JavaScript代码,从而进行动态分析、调试、修改等操作,能够绕过应用程序的安全措…

nodejs使用express框架启动服务操作mysql数据库

描述: 首先在本地搭建mysql数据库,配置:host: ‘192.168.3.249’,user: ‘mkx’,password: ‘123456’,database: ‘gg’.测试连接正常.使用express写两个接口, 1.查询所有学生的接口,使用的get请求,无参数. 2.插入一条学生信息,使用post请求,body是一个json的学生信息{name:“…

土壤科学灌溉CG-36 土壤水势传感器

土壤科学灌溉CG-36 土壤水势传感器产品概述 土壤水势传感器可以很方便地插入到土壤剖面坑中&#xff0c;在其周围包裹上湿土即可。测定和记录非常简单。免维护、无需校准即可测量较大范围的土壤水势&#xff1b;无需灌水&#xff0c;大量程使得它成为测量自然系统水势的理想传…

十个Vue3实用但是冷门的API

文章目录 一、前言二、readonly三、shallowRef四、shallowReactive五、toRef & toRefs5.1、 toRef5.2、toRefs 六、toRaw & markRaw & unref6.1、toRaw6.2、markRaw6.3、unref 七、effectScope & onScopeDispose7.1、收集副作用7.2、全局状态管理 八、provide …