docker-harbor私有仓库部署和管理

news2025/1/12 13:28:12

harbor:开源的企业级的docker仓库软件

仓库:私有仓库 公有仓库 (公司内部一般都是私有仓库)

habor 是有图形化的,页面UI展示的一个工具,操作起来很直观。

harbor每个组件都是由容器构建的,所以安装harbor必须要有docker

docker-compose 一键编排,所以也是需要安装的。

harbor:

1、通过角色对权限进行控制,用户和仓库都是基于项目进行组织,不同的用户在不同的项目中拥有不同的权限

2、镜像复制,每个仓库(之间可以通信)之间可以互相复制里面的镜像

3、UI界面可以对镜像进行删除,删除了之后也会释放本机的空间

4、图形化界面,可以用浏览器进行访问

5、审计管理,所有对镜像仓库的操作都有记录,用于审计管理


harbor的组件:

主要的组件:

1、porxy:nginx的前端页面,nginx的配置中做了反向代理,浏览器不同的请求转发到后端不同的容器中。

2、Registry:仓库,保存镜像,同时push上传/pull下载(核心功能)

3、core services:Harbor的核心功能,对用户进行授权,检测仓库内镜像的变化以及token,根据不同的权限给予不同的token(token相当于身份的认证)

4、database:负责存储用户的权限,审计日志,docker镜像的分组信息

5、JOB services:镜像复制,不同仓库之间进行复制

6、log collector:日志收集工具

以上组件都是由容器运行,docker-compose一键拉取部署


实验环节

客户端:docker

服务端1:harbor docker docker-compose

服务端2:harbor docker docker-compose

1、部署服务端

2、客户端和服务器之间上传,下载镜像,权限控制(重要)

3、仓库之间的镜像复制。(服务器迁移用得到)

拖入harbor-offline-installer-v2.8.1.tgz 压缩包

对其进行解压tar -xf

解压完成出现harbor这个目录,进入这个目录中,查看这个目录中的文件

出现一个harbor.yml.tmpl这个文件,对其进行备份,备份的文件名称为harbor.yml

对harbor.yml配置文件进行编辑

在第5行修改一下ip地址为192.168.124.10

5 hostname: 192.168.124.70

 第13行至18行把https注释掉

13 #https:
 14   # https port for harbor, default is 443
 15   #port: 443
 16   # The path of cert and key files for nginx
 17   #certificate: /your/certificate/path
 18   #private_key: /your/private/key/path

第34行管理员的密码可更改也可以不改,改成自己熟悉的密码

34 harbor_admin_password: 123456

 第53行data_volume:上传到仓库之后,仓库保存的镜像路径

53 data_volume: /data

 ./prepare 安装和拉取harbor依赖的镜像

Unable to find image 'goharbor/prepare:v2.8.1' locally
v2.8.1: Pulling from goharbor/prepare
fae4a5262fc3: Pull complete
9349e879c799: Pull complete
f70ee3e2dda4: Pull complete
e4481ec28daf: Pull complete
5e2207505ae9: Pull complete
8a696946fd36: Pull complete
31fd4a582b38: Pull complete
940005f64c71: Pull complete
bac5bba6e7f3: Pull complete
93231c0f7f57: Pull complete
Digest: sha256:22f96c244c2b0644dadc8049f8a49847e76e946743e12f78f69eac682ece4fc9
Status: Downloaded newer image for goharbor/prepare:v2.8.1
WARNING:root:WARNING: HTTP protocol is insecure. Harbor will deprecate http protocol in the future. Please make sure to upgrade to https
Generated configuration file: /config/portal/nginx.conf
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/log/rsyslog_docker.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/registryctl/config.yml
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
Generated and saved secret to file: /data/secret/keys/secretkey
Successfully called func: create_root_cert
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir

./install.sh执行harbor软件里面的脚本安装相关软件

✔ ----Harbor has been installed and started successfully.----

 在浏览器访问192.168.124.70这个页面

往库里面的项目上传镜像

进入这个harbor库中命令

[root@localhost harbor]# docker login -u admin -p 123456 http://192.168.124.70

先把镜像打上一个标签

 docker tag nginx:1.22 192.168.124.70/test1/nginx:v1

必须以192.168.124.70/test1/nginx:v1这种格式,不然浏览器的库识别不了

然后往库中的项目上传镜像

[root@localhost harbor]# docker push 192.168.124.70/test1/nginx:v1
The push refers to repository [192.168.124.70/test1/nginx]
9543dec06aa8: Pushed
ccf4f419ba49: Pushed
21f8452ebfb1: Pushed
25bbf4633bb3: Pushed
a4f34e6fb432: Pushed
3af14c9a24c9: Pushed
v1: digest: sha256:9081064712674ffcff7b7bdf874c75bcb8e5fb933b65527026090dacda36ea8b size: 1570

角色:

1、先添加用户,用户就是一个普通用户,私有项目是无法浏览的

2、要浏览私有项目,必须要项目中添加成员,设定成员的角色

受限访客:只能看,不能上传,也不能下载,也没有其他权限

访客:拥有只读权限,可以拉取镜像,不能上传,也无法删除镜像

开发者:可以读写,但是不能删除

维护人员:既有读写权限,也可以对项目的权限进行修改

项目管理员:读写,修改,删除都可以

在docker.service配置添加ip地址

vim /usr/lib/systemd/system/docker.service

项目迁移

安装harbor

安装配置docker-compose

1 mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
2 chmod 777 /usr/local/bin/docker-compose
3 docker-compose -v
4 Docker Compose version v2.18.0
5 tar -xf harbor-offline-installer-v2.8.1.tgz
6 ls
7 containerd  harbor  harbor-offline-installer-v2.8.1.tgz  rh
8 cd harbor
9 ls
10 common.sh  harbor.v2.8.1.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare
11 cp harbor.yml.tmpl harbor.yml
12 vim harbor.yml
13 ./prepare #编译环境
14 ./install.sh   ##开始安装
#如果需要修改harbor配置文件重新./install.sh在执行一次即可

进入页面

复制管理新建规则

如果不选则拉取所有

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

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

相关文章

CocosCreator3.8 IOS 构建插屏无法去除的解决方案

CocosCreator3.8 IOS 构建插屏无法去除的解决方案 在实际项目开发过程中,我们通常无需CocosCreator 自带的插屏,一般采用自定义加载页面。 然后在构建IOS 项目时,启用(禁用)插屏无法操作,如下图所示&#…

PDF转图片神器!一键转换,告别繁琐操作

自从出了社会以来,不论是在职场应对工作还是日常的信息传输等等场景都是经常需要用到各类格式之间转换的情况,其中尤其是pdf和图片这类编辑条件要求偏高的工具对信息的保密程度更高,所以往往也是出现频率比较高的格式,今天针对pdf…

heic图片转换成jpg怎么快速转换?5个软件手把手教你转换图片片格式

heic图片转换成jpg怎么快速转换?5个软件教你轻松转换图片格式 将HEIC格式的图片转换为更常见的JPG格式可能是许多人在使用苹果设备后常遇到的需求。以下是五款能够帮助你快速完成HEIC转JPG的实用软件,无论是在线工具还是桌面应用,都可以让你…

普元EOS-服务端获取当前登录用户信息

1 前言 EOS服务端需要获取当前登录人员的信息,获取方法如下: import com.eos.data.datacontext.DataContextManager; import com.eos.data.datacontext.IUserObject; import com.eos.data.datacontext.UserObject;UserObject userObj (UserObject) Da…

redis实战——go-redis的使用与redis基础数据类型的使用场景(一)

一.go-redis的安装与快速开始 这里操作redis数据库,我们选用go-redis这一第三方库来操作,首先是三方库的下载,我们可以执行下面这个命令: go get github.com/redis/go-redis/v9最后我们尝试一下连接本机的redis数据库&#xff0…

扫码点餐系统小程序功能分析

扫码点餐系统小程序通常具备以下核心功能: 用户界面:提供直观易用的界面,方便用户浏览菜单、选择菜品、查看订单状态等 。菜单展示:展示餐厅的菜单,包括菜品图片、价格、描述等信息 。扫码点餐:用户通过…

warning: implicit declaration of function ‘m‘ is invalid in C99

编译报错: implicit declaration of function ‘m’ is invalid in C99 即 函数 “m” 的隐式声明在C99中无效 原因: C语言是过程化的编程语言,程序执行顺序是从上到下。函数调用需要先声明后调用。 C99 默认不允许隐式声明(1999年推出的c语言标准)。 …

悟空,中国神话再一次惊艳世界

大家好,我是小悟 这两天《黑神话:悟空》刚上线,是非常的火。刚进入游戏,犹如揭开一幅绚丽多彩的画卷,展现了国产游戏在技术创新与艺术追求上的新高度。这款游戏不仅仅是一款动作角色扮演游戏,更是技术与艺术…

zoom 会议机器人web例子

一、需要创建zoom app,创建及配置参考:Zoom会议机器人转写例子-CSDN博客 这里直接使用zoom-recall的配置。 二、需要生成签名,参数为:zoom-recall中的Client ID和Client Secret 1、git clone https://github.com/zoom/meetings…

大模型学习笔记 - LLM 之 attention 优化

LLM 注意力机制 LLM 注意力机制 1. 注意力机制类型概述2.Group Query Attention3.FlashAttention4. PageAttention 1. 注意力机制类型概述 注意力机制最早来源于Transformer,Transformer中的注意力机制分为2种 Encoder中的 全量注意力机制和 Decoder中的带mask的…

磁编码器原理与方案

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 前言一、磁编码器二、多极磁编三、绝对值磁编四、单极对磁编五、磁游标编码器六、磁刻线编码器七、磁编码器优点八、磁…

46.x86游戏实战-DXX封包实现进入地图房间

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

windows所有功能都可使用就是电脑黑屏了

运行新任务然后输入explorer.exe勾选上创建任务确定就好了 下次尽量不手欠!!!!

21. Lammps命令学习-6之read_data

来源: “码农不会写诗”公众号 链接:Lammps命令学习-6之read_data read_data file keyword args … 读取包含LAMMPS运行模拟所需信息的data文件   https://docs.lammps.org/read_data.html Syntax read_data file keyword args ...Description 读取包…

推荐算法实战-五-召回(上)

一、传统召回算法 (一)基于物料属性的倒排索引 在离线时,将具有相同属性的物料集合起来,根据一些后验统计指标将物料排序。 当一个用户在线交互发出请求后,提取用户的兴趣标签,根据标签检索相应物料集合…

24吉林成考报名明日开始,注意照片规格

24吉林成考报名明日开始,注意照片规格 #吉林成考 #成考报名 #成考报名照片 #成人高考报名 #成人高考 #成人高考报名照片

CANoe.DiVa的应用——Diva进行诊断自动化测试执行过程详解(三)

🙋‍♂️【Vector CANdelastudio配置CDD】文章合集💁‍♂️点击跳转 ——————————————————————————————————–—— 从0开始学习CANoe使用 从0开始学习车载测试 相信时间的力量 星光不负赶路者,时光不负有心人。 目录 1.工程导入2.查看用…

SpringBoot3 简单集成 Spring AI 并使用

文章目录 准备JDK17api key 创建项目编写配置文件创建controller启动并测试角色预设流式响应\异步响应ChatModel(聊天模型)ImageModel(文生图)文生语音语言翻译多模态Function Calling (函数调用第三方API)…

小折叠手机首获120万次弯折耐久认证,意味着什么?

提到折叠屏手机,很多人都会担心其耐用性。毕竟,频繁的开合对铰链和屏幕都是极大的考验。但华为nova Flip却用实力证明,耐用性不再是问题。凭借玄武水滴铰链技术,首获瑞士SGS 120万次弯折耐久认证的小折叠屏手机。 一、120万次弯折…

springboot中后缀匹配模式useSuffixPatternMatch、useTrailingSlashMatch的源码匹配分析

背景: 上篇文章,已经说了,如果我们直接debug调试没法找到源码中具体的代码,那么就可以通过jd-gui反编译的方式通过搜关键词的方式来找到源码中具体的位置,这次简单说下spring中的两种后缀匹配模式useSuffixPatternMat…