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

news/2024/9/18 0:16:13/ 标签: docker, 容器, 运维

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 44315   #port: 44316   # The path of cert and key files for nginx17   #certificate: /your/certificate/path18   #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.ppmy.cn/news/1516740.html

相关文章

高效的数据恢复软件介绍给大家!

数据丢失可太烦人了,在工作中我们经常会遇到数据丢失的情况,那么你知道数据丢失怎么找回来吗?当然找的回来啦!需要用上高效且有用的数据恢复工具。那么,今天就要给大家介绍两个好用的数据恢复工具,可以将您…

5个常见问答 | 1+X证书《大数据应用开发(Python)》

1、 1X大数据应用开发(Python)哪些人群可以考? 全日制在读的中高职学校、应用型本科、本科层次职业教育试点学校院校的学生,有意向从事与证书相关岗位的社会人士都可考取该证书。 2、1X大数据应用开发(Python&am…

网络udp及ipc内存共享

大字符串找小字符串 调试 1. 信号处理函数注册:•一旦使用 signal 函数注册了信号处理函数,该函数就会一直有效,直到程序结束或者显式地取消注册。2. 注册多次的影响:•如果多次注册同一信号的处理函数,最后一次注册的…

【手写数据库内核组件】0303 数据缓存池(二) 缓存块使用前需要固定,缓存加载与无效,无锁的替换算法

0303 数据缓存池(二) ​专栏内容: postgresql使用入门基础手写数据库toadb并发编程个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 0303 数据缓存池(二)一、概述 二、缓存块操作原理 2.1 缓存块的读写访问 2.2 无…

C学习(数据结构)-->实现链式结构二叉树

目录 一、链式二叉树结构 二、实现 1、申请新结点 2、前、中、后序遍历 1)前序遍历 例: 2)中序遍历 3)后序遍历 3、结点个数 1)二叉树结点个数 例:​编辑 2)二叉树叶子结点个数 3&…

网络排名变差算法在充电桩计量可信度评价中的应用AcrelCloud-9000安科瑞充电柱收费运营云平台

摘要:网络排名变差算法是指根据充电交易流水数据构造桩车网络,利用复杂网络的投票智慧而非传统的物理实验来获得对量值的信心。将排名变差算法用于桩车网络计算中,旨在检定合格的充电桩对其他充电桩排名变化的影响,这种影响以电动…

计算机毕业设计选题推荐-OA办公管理系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

Git提交错误代码如何回退代码

1,找到需要回退的提交行,点击右键,点击重置当前分支到此次提交 2,选择强行合并 3,执行git pull -f 强行推送 4,如果当前账号没有开启本分支强推权限 需要去git开启 5,如果没有推送,处于待推…

深度学习学习经验——长短期记忆网络(LSTM)

长短期记忆网络(LSTM) 长短期记忆网络(LSTM,Long Short-Term Memory)是一种特殊的循环神经网络(RNN),专为解决 RNN 中长期依赖问题而设计。LSTM 引入了三个门和一个细胞状态&#x…

Spring DI 数据类型——构造注入

首先新建项目&#xff0c;可参考 初识 IDEA 、模拟三层--控制层、业务层和数据访问层 一、spring 环境搭建 &#xff08;一&#xff09;pom.xml 导相关坐标 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.…

FPGA时序约束

FPGA时序约束 目录 FPGA时序约束 前言1、建立和保持时间1.1 建立时间1.2 保持时间 2 时序路径2 具体约束2.1 IO约束2.1.1 管脚约束2.1.2 延迟约束2.1.3 虚拟时钟 2.2周期约束&#xff0c;FPGA内部的时序路径2.2.1 主时钟2.2.2 衍生时钟2.2.3 主时钟之间的相互关系2.2.4 使用BUF…

S3协议分片上传(minio)

文章目录 前言一、minio 为例二、使用步骤1.引入库2.读入数据总结前言 目前文件存储一般采用obs存储,也就是对象存储 比较流行的有: minio 阿里云 华为云 阿里云 腾讯云 七牛云 百度云 ,对于贫穷的我来说,当然选择免费开源的minio了,但是他们有一个统一的标准也就是S3协议,相…

一文读懂 DDD领域驱动设计

DDD&#xff08;Domain-Driven Design&#xff0c;领域驱动设计&#xff09;是一种软件开发方法&#xff0c;它强调软件系统设计应该以问题领域为中心&#xff0c;而不是技术实现为主导。DDD通过一系列手段如统一语言、业务抽象、领域划分和领域建模等来控制软件复杂度&#xf…

【Rust光年纪】Rust多媒体处理库全面比较:探索安全高效的多媒体处理利器

多媒体处理不再困扰&#xff1a;解锁Rust语言下的六大多媒体利器 前言 随着Rust语言的快速发展&#xff0c;越来越多的多媒体处理库和工具集开始出现&#xff0c;为开发人员提供了丰富的选择。本文将对几个用于Rust语言的多媒体处理库进行介绍&#xff0c;并对它们的核心功能…

【算法】希尔排序、计数排序、桶排序、基数排序

1 希尔排序 2 计数排序 3 桶排序 4 基数排序 1 希尔排序 """ 希尔排序&#xff08;Shell Sort&#xff09;是一种插入排序算法的改进版本&#xff0c;得名于其发明者Donald Shell。 它通过比较一定间隔的元素来进行排序&#xff0c;以减少数据移动的次数&#…

Jmeter进行http接口测试

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、jmeter-http接口测试脚本 jmeter进行http接口测试的主要步骤&#xff08;1.添加线程组 2.添加http请求 3.在http请求中写入接口的URL&#xff0c;路径&#xf…

【HarmonyOS NEXT星河版开发实战】天气查询APP

目录 前言 界面效果展示 首页 添加和删除 界面构建讲解 1. 获取所需数据 2. 在编译器中准备数据 3. index页面代码讲解 3.1 导入模块&#xff1a; 3.2 定义组件&#xff1a; 3.3 定义状态变量: 3.4 定义Tabs控制器: 3.5 定义按钮样式&#xff1a; 3.6 页面显示时触发…

Java核心API——Collection集合的工具类Collections

集合的排序 int类型的排序 * 集合的排序 * java.util.Collections是集合的工具类&#xff0c;提供了很多static方法用于操作集合 * 其中提供了一个名为sort的方法&#xff0c;可以对List集合进行自然排序(从小到大) List<Integer> list new ArrayList<>();Rand…

96页PPT集团战略解码会工具与操作流程

德勤集团在战略解码过程中通常会用到以下一些具体工具&#xff1a; 一、平衡计分卡&#xff08;Balanced Scorecard&#xff09; 财务维度&#xff1a; 明确关键财务指标&#xff0c;如营业收入、利润、投资回报率等。你可以通过分析历史财务数据和行业趋势&#xff0c;确定…

设计模式24-命令模式

设计模式24-命令模式 写在前面行为变化模式 命令模式的动机定义与结构定义结构 C 代码推导优缺点应用场景总结补充函数对象&#xff08;Functors&#xff09;定义具体例子示例&#xff1a;使用函数对象进行自定义排序代码说明输出结果具体应用 优缺点应用场景 命令模式&#xf…