Linux离线安装Harbor镜像仓库

news2024/11/20 16:33:52

一、Harbor简介

Harbor是一个开源的企业级Docker Registry管理项目,由VMware公司开源。它提供了比Docker官方公共镜像仓库更为丰富和安全的功能,尤其适合企业环境使用。Harbor的关键特性包括权限管理(RBAC)、LDAP集成、日志审计、管理界面、自我注册、镜像复制以及漏洞扫描等。Harbor的设计旨在支持多用户环境,允许创建不同的用户和组织,并为他们分配不同的权限,确保了资源的安全隔离和管理的灵活性。

二、与Registry2区别

Harbor和Docker Registry 2都是用于存储和管理Docker镜像的解决方案,但它们各有特点和适用场景。Harbor是VMware开源的项目,专为企业级用户设计,提供了更多的安全性和管理功能,而Docker Registry 2是Docker官方提供的私有仓库解决方案,适用于个人和小规模团队使用。以下是他们之间的主要区别:

对比维度HarborRegistry 2
开源状态VMware开源项目Docker官方提供
安全性支持镜像扫描、漏洞检测、安全策略基本安全特性,如用户认证和访问控制
管理功能提供管理图形界面、基于角色的访问控制、镜像远程复制同步等较为简单,适合个人和小规模团队使用
用户界面提供Web界面可通过第三方工具如docker-registry-ui
扩展性支持多节点部署和高可用性配置适合小型项目或个人使用
企业级功能支持LDAP/AD集成、审计日志等不专门针对企业级需求设计
镜像复制和同步支持基于策略的镜像复制机制支持基本的镜像复制功能
权限管理基于角色的访问控制机制用户认证和访问控制
镜像管理策略支持存储配额、制品保留等基本镜像管理功能
互操作性支持Webhook、内容远程复制等可通过第三方工具增加功能
支持的语言原生支持中文英文为主
部署模式支持离线安装包、all-in-one HA部署通常需要在线安装和配置
社区活跃度较高,有专门的社区和贡献者作为Docker的一部分,社区支持广泛

三、Harbor安装部署

3.1 下载离线安装包

官方提供的安装包地址: https://github.com/goharbor/harbor/releases
在这里插入图片描述

3.2 安装Docker、Docker-Compose

由于下载的离线安装包实际上是通过Docker-Compose来批量启动Harbor所需要的docker容器,所以服务上的先安装好Docker以及Docker-Compose。

(1)docker安装

#查看是否已安装了docker,未安装则查询不出结果
yum list installed | grep docker
#使用yum安装yum-utils工具包
yum install -y yum-utils
#设置国内的阿里云镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
#安装docker
yum install docker-ce docker-ce-cli containerd.io
#启动docker
systemctl start docker
#查看docker版本
docker version 
#查看docker运行状态
systemctl status docker

(2)离线安装docker-compose

#docker-compose下载地址
https://github.com/docker/compose/releases/download/v2.3.4/docker-compose-linux-x86_64
#将下载好的安装包上传到服务器后,将文件移动到/usr/local/bin下,并改名为docker-compose
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
#添加docker-compose文件的执行权限
chmod +x /usr/local/bin/docker-compose
#创建软链接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#查看docker-compose版本
docker-compose version
3.3 解压安装包

(1)解压命令:tar zxvf harbor-offline-installer-v2.10.2.tgz
在这里插入图片描述

(2)进入到解压出来的目录中,里面会有个 harbor.yml.tmpl,复制一份该文件命名未 harbor.yml并进行编辑该文件,修改地方主要有以下几点:

## 改为主机ip或者域名
hostname: 127.0.0.1

## 绑定主机端口
port: 88

## admin管理员登录密码
harbor_admin_password: 123456

## 数据卷目录
data_volume: /data/harbor

## 没有证书的话先关闭https
#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

在这里插入图片描述

3.4 执行安装

进入到解压目录中,执行安装脚本进行Harbor安装部署。
在这里插入图片描述
安装脚本执行成功显示如下:
在这里插入图片描述
通过docker ps命令查看下运行的容器是否正常。
在这里插入图片描述

3.5 浏览器访问

输入服务器ip+端口跳转到harbor的登录页面,使用admin管理员账号进行登录。
在这里插入图片描述

四、Harbor使用

4.1 建立镜像仓库

镜像仓库有2种访问级别:

  • 公开:任何人都可以直接访问并下载镜像。
  • 私有:登陆授权后才允许下载镜像,k8s是不能直接下载的,需要配置安全文件。

在这里插入图片描述
在这里插入图片描述

4.2 配置docker信任harbor仓库

编辑docker的/etc/docker/daemon.json配置文件,再里面添加harbor部署的服务器ip:
"insecure-registries": ["127.0.0.1"]
在这里插入图片描述

编辑好后,再执行下面命令重启docker服务。
systemctl restart docker

4.3 登录到harbor仓库

通过docker命令登录到harbor仓库:docker login 127.0.0.1:8888
在这里插入图片描述

4.4 推送镜像到harbor仓库

(1)先使用tag命令将镜像重名下,改成harbor仓库的ip:端口+镜像名
docker tag redis:latest 127.0.0.1:8888/public/redis:latest
(2)推送镜像
docker push 127.0.0.1:8888/public/redis:latest
在这里插入图片描述在这里插入图片描述

4.5 拉取harbor仓库的镜像

docker pull 127.0.0.1:8888/public/redis:latest

五、harbor生命周期操作

在Harbor仓库中进行生命周期操作,包括启动、停止、重启服务,以及删除容器等,通常需要通过docker-compose命令来实现。以下是一些常用的生命周期操作命令:

  • 启动Harbor服务:docker-compose start
  • 停止Harbor服务:docker-compose stop
  • 重启Harbor服务:docker-compose restart
  • 删除Harbor容器:docker-compose down

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

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

相关文章

《动手学深度学习(Pytorch版)》Task02:预备知识——4.25打卡

《动手学深度学习(Pytorch版)》Task02:预备知识——4.25打卡 数据操作N维数组——张量创建数组访问元素入门初始化矩阵 运算符广播机制索引和切片节省内存转换为其他Python对象转换为NumPy张量ndarray张量转换为Python标量 数据预处理安装pan…

2023平航杯——介质取证部分复现

闻早起的电脑 教徒“闻早起”所使用的笔记本电脑使用何种加密程式? VeraCrypt 教徒“闻早起”所使用的笔记本电脑中安装了一款还原软件,其版本号为?【标准格式:1.2.3.4】 8.71.020.5734 教徒“闻早起”所使用的笔记本电脑中登…

【SpringCloud】OpenFeign高级特性

【SpringCloud】OpenFeign高级特性 文章目录 【SpringCloud】OpenFeign高级特性1. 超时控制1.1 全局配置1.2 指定配置 2. 重试机制3. 替换Http客户端3.1 引入依赖3.2 配置 4. 请求/响应压缩5. 日志打印6. 综合配置 1. 超时控制 默认OpenFeign客户端等待60秒钟,但是服…

【硬件设计】基于LM22679芯片的DC-DC转换器

文章目录 1. DC-DC转换器的基本原理1.1 DC-DC转换器是什么1.2 DC-DC转换器的应用场景 2. LM22679芯片2.1 LM22679芯片特性和基本参数2.2 LM22679原理 3. LM22679电路设计实例 1. DC-DC转换器的基本原理 1.1 DC-DC转换器是什么 DC-DC转换器是一种用于将直流(DC&…

Python打怪升级(4)

在计算机领域常常有说"合法"和"非法"指的是:是否合理,是否有效,并不是指触犯了法律。 random.randint(begin,end) 详细讲解一下这个random是指模板,也就是别人写好的代码直接来用,在Python当中,…

利用弹性云主机部署高效数据库系统

在当今云计算的时代,弹性云主机(EC2)为我们提供了前所未有的灵活性和可扩展性,使得在云端部署高效的数据库系统成为可能。本文将从选择适当的云服务配置、优化数据库设置、建立完备的数据备份与恢复策略,以及加强数据库…

forward 函数在深度神经网络程序中确实用于表示程序逻辑,特别是网络的前向传播过程。它描述了输入数据如何通过网络的每一层,并最终得到输出预测值的流程

在深度神经网络(例如卷积神经网络,CNN)的程序中,forward 函数通常用于描述网络的前向传播(forward pass)过程。前向传播是神经网络的核心操作之一,它指的是输入数据通过网络的每一层&#xff0c…

【漏洞复现】WebLogic XMLDecoder反序列化(CVE-2017-10271)

1、漏洞描述 CVE-2017-10271漏洞产生的原因大致是Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的xml数据甚至能…

基于小程序实现的惠农小店系统设计与开发

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】:Java 【框架】:spring…

蓝桥杯python考级整理

4_1:算术运算符 4_2:基本语法 4_3:基本语法 4_4:列表 4_5:函数 4_6:字符串 4_7:列表 4_8:逻辑运算符 4_9:字典 4_10:函数

ds18b20温度传感器驱动程序

ds18b20驱动程序 有了之前延时的方法,那么实现一个单总线数据传输的传感器驱动程序就非常简单了。下面我们套用杂项驱动框架来编写ds18b20驱动程序。 实现需要明确的是:**ds18b20驱动的本质是通过2440的gpio,通过给定的时序对ds18b20的读写数…

如何在阿里云快速配置自动定时重启ECS云服务器?

背景 无论是电子商务、在线教育、游戏,还是流媒体等业务,服务器的稳定运行都是至关重要的。然而,在实际运行中,我们可能会遇到这样一些场景: 系统更新:一些操作系统或者软件的更新可能需要重启服务器才能…

【课程发布】软考高项目十大管理ITTO宫殿记忆法新版第四版正式发布

软考高项十大管理ITTO宫殿记忆法视频课程: 平台:荔枝微课 连接:十方教育 各位软考高级信息系统项目管理师考生好,新版第四版十大管理ITTO宫殿记忆法视频课程终于发布了,之前苦等的考生终于迎来了救星,再也…

深入理解MySQL中的UPDATE JOIN语句

在MySQL数据库中,UPDATE语句用于修改表中现有的记录。有时,我们需要根据另一个相关联表中的条件来更新表中的数据。这时就需要使用UPDATE JOIN语句。最近我们遇到了这样的需求:我们有一张历史记录表,其中一个字段记录了用,连接的多…

Zephyr学习记录

一、Zephyr是什么? Zephyr 是 Linux 基金会推出的一个适用于物联网的小型可伸缩的实时操作系统,支持多种处理器架构。Zephyr 是安全的、开源的、模块化的以及支持多种连接方式。与华为的liteos很像,也不知道谁抄的谁。 二、官方资料 官方介…

Python+Selenium基于PO模式的Web自动化测试框架

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供…

ElasticSearch:查询操作合集

先看下我的数据: 1、查询所有文档: GET /cartest/_search或者 GET /cartest/_search {"query": {"match_all": {}} }2、匹配查询: match匹配类型查询,会把查询条件进行分词,然后进行查询&…

B02、JVM调优案例

1、调优的基本问题 1.1、为什么要调优? 目的是防止出现OOM,进行JVM规划和预调优;解决程序运行中各种OOM;以及减少Full GC出现的频率,解决运行慢、卡顿问题。 1.2、调优的大方向 合理的编写代码,充分并合理…

easyx 按键信息

前言 看看代码吧 ExMessage msg { 0 }; bool button(int x, int y, int w, int h, const char* text) {//绘制按钮setfillcolor(RGB(230, 231, 232));fillroundrect(x, y, x w, y h, 5, 5);if ((msg.x > x && msg.x<x w && msg.y>y && …

AcWing 1264. 动态求连续区间和 ,详细讲解线段树与树状数组(Python,篇一)

本篇博客主要介绍一下什么是线段树与树状数组&#xff0c;它们的原理与结构是怎样&#xff0c;并通过实际题型来讲解&#xff0c;篇一主要讲解线段树&#xff0c;下一篇博客讲解树状数组。 线段树与树状数组的区别和特点&#xff1a; 它们的时间复杂度都是O(nlogn) 存储方式…