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地址软件
serverCentOS7.6192.168.158.25docker、docker-compose、harbor-offline-v1.1.2
clientCentOS7.6192.168.158.26docker

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.使用堡垒机的方式流程

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

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

相关文章

vue 中 axios 的安装及使用

vue 中 axios 的安装及使用 1. axios 安装2. axios使用 1. axios 安装 首先,打开当前的项目终端,输入 npm install axios --save-dev验证是否安装成功,检查项目根目录下的 package.json,其中的 devDependencies 里面会多出一个axios及其版本…

Linux(基础篇二)

Linux基础篇 Linux基础篇二5. 系统管理5.1 Linux中的进程和服务5.3 systemctl5.4 运行级别CentOS 6CentOS 7 5.5 关机重启命令 Linux基础篇二 5. 系统管理 5.1 Linux中的进程和服务 计算机中,一个正在执行的程序或命令,被叫做“进程”(process) 启动之…

OpenCV实战(基础知识三)

简介 OpenCV是一个流行的开源计算机视觉库,由英特尔公司发起发展。它提供了超过2500个优化算法和许多工具包,可用于灰度、彩色、深度、基于特征和运动跟踪等的图像处理和计算机视觉应用。OpenCV主要使用C语言编写,同时也支持Python、Java、C…

网络安全(红队)自学学习路线

想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全…

UE4 地形编辑基础知识 学习笔记

之前自己写过这样的功能,今天看到一个UE现成的 点击地形,选择样条 按住CTRL键点击屏幕中某一个点会在场景内生成一个这样的图标 再点两次,会生成B样条的绿线条 点击号再选择一个模型,会生成对应的链条状的mesh 拉高最远处的一个图…

python网络爬虫指南二:多线程网络爬虫、动态内容爬取(待续)

文章目录 一、多线程网络爬虫1.1 线程的基础内容、GIL1.2 创建线程的两种方式1.3 threading.Thread类1.4 线程常用方法和锁机制1.5 生产者-消费者模式1.5.1 生产者-消费者模式简介1.5.2 Condition 类协调线程 1.6 线程中的安全队列1.6 多线程爬取王者荣耀壁纸1.6.1 网页分析1.6…

开源双语对话语言模型 ChatGLM-6B 本地私有化部署

本文首发于:https://www.licorne.ink/2023/08/llm-chatglm-6b-local-deploy/ ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级…

H36M VS 3DPW datasets

1采集设备方面 H36M使用了高精度的多视角摄像机动态捕捉系统获得了非常准确和连贯的3D关节坐标标注。 3DPW使用了单目摄像机与IMU的复合传感系统进行采集,存在一定程度的标注噪声。 2场景环境方面 H36M主要针对室内定向动作,背景单一简洁。 3DPW重点是室外复杂环境中人的自…

3d max插件CG MAGIC中的蜂窝材质功能可提升效率吗?

工作中能提升效率也都是大家所想的,对于设计师的一个设计过程中,可能想怎么样可以更快呀,是哪个步骤慢了呢? 这样的结果只能说会很多,但是建模这个步骤,肯定是有多无少的。 为了让模型更加逼真&#xff0c…

html实现元素拖动替换

效果 实现 复制粘贴.html即可使用 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>拖动替换</title></head><style>.box {width: 500px;height: 500px;background: gainsboro;border-radius: 10px;}…

开源的经济影响:商业与社区的平衡

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Docker搭建私有仓库并迁移

目录 方案 A、B机器安装docker 设置阿里云镜像源 安装 Docker-CE并设置为开机自动启动 A机器准备数据 拷贝数据 B机器运行redis、mysql镜像 重启docker服务 方案 准备两台机器&#xff1a;A机器&#xff08;可以连接外网&#xff09;&#xff0c;B机器&#xff08;内网机器…

单片机学习-蜂鸣器电子元件

蜂鸣器是有什么作用的&#xff1f; 蜂鸣器 是 一种 一体化结构 的电子训响器&#xff0c;可以发出声音的电子元器件 蜂鸣器分类&#xff1f; ①压电式蜂鸣器&#xff08;图左&#xff09; 称&#xff1a; 无源蜂鸣器 ②电磁式蜂鸣器&#xff08;图右&#xff09; 称&#xf…

电商PC端设计之店招

设计总资料&#xff1a; 1、裂帛 2、小狗电器 3、店招120PX&#xff0c;导航栏30px 4、毕业那些年的店招 5、操作实例&#xff0c;建立120PX的画布 6、产品多的时候要加搜索框 7、产品店招在左边&#xff0c;主推产品在右边 8、贝蒂佩琪 实战案例 1、利用画布调整图像大小 2、…

前端需要理解的Vue知识

1 模板语法 Vue使用基于 HTML 的模板语法&#xff0c;能声明式地将其组件实例的数据绑定到DOM。所有Vue 模板可以被符合规范的浏览器和 HTML 解析器解析。Vue 会将模板编译成高度优化的 JavaScript 代码。结合响应式系统&#xff0c;当应用状态变更时&#xff0c;Vue 能够智能…

AUTOSAR规范与ECU软件开发(实践篇)6.6 BSW模块代码生成

在BCT界面中配置完所需要的BSW模块后&#xff0c; 可以进行BSW模块相关代码与描述文件的生成&#xff0c; 点击ISOLAR-A主菜单中“ ”右边箭头&#xff0c; 选择Run Configuraions&#xff0c; 如图6.57所示。 将弹出如图6.58所示的界面。 图6.57 Run Configuraions配置&#x…

Cpp学习——编译链接

目录 ​编辑 一&#xff0c;两种环境 二&#xff0c;编译环境下四个部分的 1.预处理 2.编译 3.汇编 4.链接 三&#xff0c;执行环境 一&#xff0c;两种环境 在程序运行时会有两种环境。第一种便是编译环境&#xff0c;第二种则是执行环境。如下图&#xff1a; 在程序运…

UI位置与布局

UI位置与布局 引言 发现UGUI的RectTransform定位还是很复杂的&#xff0c;感觉有必要详细了解一下 RectTransform 继承自Transform。他的local position由其他几个变量控制。建议不要直接设置position 目的是为了实现UI自动布局。这套方法将绝对定位&#xff0c;相对定位&a…

mysql sql 执行流程

监控查询缓存的命中率 show status like ‘%qcache%’; mysql 缓存机制&#xff0c;以及 8.0 为啥取消 select sql_NO_Cache * from 表 where xxx; # 不使用缓存