企业实战!基于Harbor搭建企业镜像仓库

news2025/8/8 2:30:30

企业实战!基于Harbor搭建企业镜像仓库

虽然Docker官方提供了Docker Hub作为公共的Registry服务器,给到用户进行镜像的保存和管理工作。但对于企业而言,考虑到安全性和网络效率等原因,通常会搭建私有的Registry服务器,用于提供企业内部的镜像仓库服务。

本文将基于开源的Harbor项目来介绍关于私有仓库的搭建。

1、Introduction to Harbor

Harbor是由VMware公司中国团队开发的一个企业级Registry项目,可用于搭建企业内部的容器镜像仓库。Harbor在Docker Registry的基础上增加了企业用户所需的权限控制、安全漏洞扫描、日志审核和远程复制等重要功能,还提供了图形管理界面及面向国内用户的中文支持,开源后便迅速业内流行开来,成为中国云原生用户的主流容器镜像仓库。

2018年7月,Harbor正式进入CNCF(谷歌创办的云原生基金会,旗下项目包括Kubernetes、Prometheus等世界级产品),并在2020年6月顺利毕业,成为了CNCF首个来自中国的开源项目。

Harbor的架构如下图所示,其中Core services为Harbor的核心模块,主要包括UI、token和webhook三个组件。UI提供图形化界面,辅助用户管理镜像;webhook 用于及时 获取Registry上镜像状态的变化情况,并传递给其他模块;token组件用于提供验证令牌。

另外,还有Job service用于多个Harbor间的镜像同步功能,Log collector用于日志收集和审核等功能

Harbor架构图

除了自身组件外,Harbor也需要使用到一些外部组件,如使用Nginx作为代理、Registry v2作为镜像存储、PostgreSQL作为数据库等等。

harbor的每个组件都是以Docker容器的形式进行部署,可以使用Docker Compose来进行统一管理。

2、Resource allocation requirements

hardware requirements

硬件最低配置推荐配置
CPU2CPU4CPU
内存4GB8GB
磁盘40GB160GB

Software Requirements

软件版本
DockerDocker 17.06.0-ce+版或更高版本
Docker Compose1.18.0或更高
Openssl首选latest版本

Install Deployment

Install Docker

Centos/RHEL版本

安装依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

根据你的发行版下载repo文件

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

把软件仓库地址替换为 国内加速源(这边采用清华大学)

sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

安装

sudo yum makecache fast
sudo yum install docker-ce

Debian/Ubuntu版本

安装依赖

sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

信任 Docker 的 GPG 公钥

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg	#Debian
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg	#Ubuntu

添加软件仓库

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装

sudo apt-get update
sudo apt-get install docker-ce

安装 Docker-compose

参考:https://www.928wang.cn/archives/1006.html

Install Harbor

下载并解压Harbor

cd /opt && wget https://github.com/goharbor/harbor/releases/download/v1.10.15/harbor-offline-installer-v1.10.15.tgz
tar xvf harbor-offline-installer-v1.10.15.tgz

Edit /harbor/harbor.yml

hostname: www.example.com #harbor域名或IP地址,使用域名的话需提前配置域名解析
http:
  port: 80		#默认HTTP端口
https:
  port: 443		#默认HTTPS端口
  certificate: /etc/ssl/server.crt  #证书
  private_key: /etc/ssl/server.key
harbor_admin_password: Harbor12345 #admin用户登录密码
database:
  password: Harbor12345    #harbor数据库ROOT用户链接的密码
  max_idle_conns: 50
  max_open_conns: 100
data_volume: /data    #数据目录

编辑完成之后推出运行安装脚本

sh install.sh

防火墙放行相应端口

firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload

完成后操作

使用firewall-cmd --list-ports 命令查看是否已放行对应端口 (云服务器需要查看安全组是否放行对应端口)

安装完成后 运行docker ps -a 命令 确认所有容器正常运行

ermanent
firewall-cmd --reload




## 完成后操作

使用`firewall-cmd --list-ports` 命令查看是否已放行对应端口 (云服务器需要查看安全组是否放行对应端口)

安装完成后 运行`docker ps -a` 命令 确认所有容器正常运行

确认Harbor相关组件容器运行正常后,打开浏览器访问域名(IP),可看到登录界面,安装完成。

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

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

相关文章

<C++>深度学习多态

目录 一、概念 二、多态的定义及实现 虚函数重写的两个例外: C11override 和 rinal 三、抽象类 接口继承和实现继承 四、多态的原理 五、单继承和多继承中的虚函数表 六、继承和多态常见的面试题 一、概念 概念:通俗来说,就是多种形…

Redis数据库redisDb源码分析

写在前面 以下内容是基于Redis 6.2.6 版本整理总结 一、组织方式 Redis服务器将所有的数据库 都保存在src/server.h/redisServer结构中的db数组中。db数组的每个entry都是src/server.h/redisDb结构,每个redisDb结构代表一个数据库。Redis默认有16个数据库。 1.1…

TDengine安装使用

引言 近期,听说了时序数据库TDengine,本人的好奇心又出来了,同是时序数据库的InfluxDB不也挺好的嘛?通过一些网上的资料以及些简单的实际操作,本人得出的结论是: 数据量少时,InfluxDB的性能好些…

MCE | TGF-β 信号通路

转化生长因子 (Transforming growth factor beta,TGF-β) 是一类多功能的细胞因子,可由多种组织细胞产生。TGF-β 信号通路是由众多成员的多功能细胞因子,与相应的受体、细胞内信号转导分子组成的通路,能影响疾病发生和发展&#…

win10利用minikube在自己的电脑上搭建k8s

首先默认你的电脑上装了docker,没有的话参考这篇 下面开始步入正题: 步骤讲解 首先下载minikube,点击这个链接,根据自己的环境生成相应的配置命令,我自己的话是64位win10系统,管理员打开cmd运行命令如下&#xff1a…

Flutter高仿微信-第33篇-单聊-图片

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 详情请参考 Flutter高仿微信-第29篇-单聊 , 这里只是提取图片实现的…

更简洁的参数校验,使用 SpringBoot Validation 对参数进行校验

在开发接口时,如果要对参数进行校验,你会怎么写?编写 if-else 吗?虽然也能达到效果,但是不够优雅。 今天,推荐一种更简洁的写法,使用 SpringBoot Validation 对方法参数进行校验,特…

k8s dashboard安装部署实战详细手册

文章目录一、k8s dashboard搭建1.选择版本2.下载yaml3.执行yaml4.访问dashboard5.token登录6.配置权限结尾一、k8s dashboard搭建 1.选择版本 dashboard和k8s存在版本对应关系,具体可以去github查找https://github.com/kubernetes/dashboard/releases 由于我的k8s…

亮相2022南京软博会,创邻科技携Galaxybase图平台展现信创硬核实力

11月23日,2022中国(南京)国际软件产品和信息服务交易博览会(以下简称”软博会“)在南京博览中心隆重开幕。此次展会以“软件赋能 数智转型”为主题,由江苏省工业和信息化厅、南京市人民政府、中国工业技术软…

iwebsec靶场 数据库漏洞通关1-MySQL数据库漏洞

iwebsec靶场的数据库漏洞第一项内容为MySQL弱口令漏洞渗透,如下所示我们可以使用kali的msf模块对其进行渗透。 一、获取iwebsec虚拟机环境的MySQL服务映射的端口号 由于iwebsec靶场是通过docker搭建在ubuntu这个宿主虚拟机中 接下来在机器在ubuntu64位这台虚拟机里…

基于JAVA的物流信息管理平台【数据库设计、源码、开题报告】

数据库脚本下载地址: https://download.csdn.net/download/itrjxxs_com/86406113 摘要 随着全球供应链持续受到 COVID-19 的影响,许多物流公司正在考虑如何重构新常态运营环境,实现降本增效。对于业务网点遍布全球的物流公司而言&#xff0…

【看球和学Go】错误和异常、CGO、fallthrough

这篇文章将详解「Go必知必会」的知识点: 错误和异常的对比、发生panic后如何执行代码?会执行到defer代码段吗?CGO是什么?CGO的作用是什么?switch中的fallthrough 错误&异常 错误指的是可能出现问题的地方出现了…

云原生系列 六【轻松入门容器基础操作】

✅作者简介: CSDN内容合伙人,全栈领域新星创作者,阿里云专家博主,华为云享专家博主,掘金后端评审团成员 💕前言: 最近云原生领域热火朝天,那么云原生是什么?何为云原生&a…

深度学习第一次作业 - 波士顿房价预测

文章目录划分训练集和测试集建立线性回归模型特征选择重建模型尝试使用GradientBoostingimport pandas as pd import numpy as np import seaborn as sns from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklea…

第一个SpringBoot项目的创建

目录 一、SpringBoot是什么? 初识springboot springboot的优点 二、SpringBoot项目的创建与简单运行 🍑使用idea创建springboot项目 🍑 Spring Boot 项目目录介绍 🍑springboot项目的简单运行与使用 一、SpringBoot是什么&a…

emq证书过期问题

近期在进行远程漏洞扫描后发现,有存在服务器证书过期的情况,可以通过以下步骤进行问题的处理: 1、先根据对应出现漏洞的端口进行检查,看端口对应的服务是哪个服务: netstat -tunlp|grep 端口号 2、通过命令&#xf…

40 - 前置操作符和后置操作符

---- 整理自狄泰软件唐佐林老师课程 问题 下面代码的区别?why? 1.1 编程实验 汇编中的处理是一样的,所以不可能从编译后的二进制程序还原 i 还是 i 1.2 事实 现代编译器产品会对代码进行优化优化使得最终的二进制程序更加高效优化后的二…

[附源码]java毕业设计渔具店管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【Linux】系统编程之网络编程(socket)

目录一、Socket编程1、TCP/UDP(1)TCP/UDP区别(2)TCP/UDP服务端和客户端的通信流程2、IP地址和端口号(1)IP地址(2)端口号二、字节序1、字节系相关概念2、有关字节序转换的函数&#x…

小小王总,如何变成任正非、化腾、强东这样的巨人!

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,非公众号转载保留此声明。王总特别迷信外面的企业培训。当遇到问题时,他喜欢去取经。这个经不像唐僧取经一样,需要历经九九八十一难…