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…

快速排序(为什么不叫二分排序呢)

干完工作的时候突然想起来快速排序我一直没学,就去看了一下别人写的博客,用的就是二分查找的思想,而且感觉挺像插入排序的。 插入排序是寻找最大,小值,而快排是确定一个数的左右区域。 package com.qx;import java.u…

个人封装的 Controller 的返回值封装类

虽然结构都是 code、msg、data 三个参数。 但友好且可控的封装&#xff0c;能更好的约束后续研发人员的扩展。 package com.example.demo.utils;import lombok.Data;import java.io.Serializable;/*** author Rain* date 2023/11/30*/Data public class Result<T> impl…

【INTEL(ALTERA)】 quartus F-Tile HDMI 英特尔 FPGA IP设计示例无法正常工作怎么办

项目场景&#xff1a; quartus F-Tile HDMI 英特尔 FPGA IP设计示例无法正常工作。 原因分析&#xff1a; 由于英特尔 Quartus Prime Pro Edition 软件版本 22.4 中存在一个问题&#xff0c;对 SystemPLL IP 的更改导致 rx_tmds_clk 无法切换/保持在较低水平。 如果此时钟无…

Java 创建事件(Event)、事件监听器(EventListener)、事件发布(publishEvent)详解

在Java中&#xff0c;创建事件&#xff08;Event&#xff09;、事件监听器&#xff08;EventListener&#xff09;和事件发布&#xff08;publishEvent&#xff09;的工作原理涉及到观察者设计模式。这种设计模式用于实现对象之间的松耦合通信。事件&#xff08;Event&#xff…

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…

安装mysql时为什么要在linux中新建mysql用户组和用户

在Linux中安装MySQL时创建专用的用户和用户组主要有以下几个原因&#xff1a; 安全&#xff1a; 分离权限&#xff1a;使用独立的MySQL用户和用户组运行MySQL服务&#xff0c;可以防止数据库进程以root或其他特权用户身份运行。这样即使MySQL服务器被攻击&#xff0c;潜在的危害…

CSS盒模型 盒子尺寸问题

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

一篇文章让你快速入门Redis(含安装使用客户端)

声明&#xff1a;文章内容皆取于学习黑马课程、若想了解原版内容请去B站了解黑马程序员Redis课程 1.Redis入门篇 1.什么是Redis Redis全称为Remote Dictionary Server,远程词典服务器,基于内存的键值型NoSQL数据库 NoSQL(Not only SQL)是对不同于传统的关系数据库的数据库管…

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

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