ubuntu 22.04安装harbor
一、概述
主要功能
- 安全性与漏洞扫描
- 集成 Clair 或 Trivy 等安全工具,自动扫描镜像中的安全漏洞,确保镜像的安全性。
- 支持镜像签名和内容信任,确保镜像的完整性和可信度。
- 访问控制
- 提供基于角色的访问控制(RBAC),确保不同用户在仓库中的操作权限得到精确控制。
- 支持与 LDAP/AD 集成,实现统一的身份验证和权限管理。
- 镜像管理
- 支持镜像的存储、分发和管理,包括镜像的上传、下载、删除等操作。
- 提供镜像复制功能,支持跨多个 Harbor 实例或其他 Docker 注册表的镜像同步。
- 支持垃圾回收和存储配额管理,优化存储资源。
- 多租户支持
- 通过项目隔离机制,支持多租户环境下的镜像管理。
- Web 界面与 API
- 提供直观的 Web 界面,方便用户进行镜像管理、项目管理、用户管理等操作。
- 提供 RESTful API,支持自动化和集成,便于与 CI/CD 流水线对接。
- 高可用性
- 支持多节点部署,确保镜像仓库的持续可用。
架构
- 数据访问层
- K-V 存储:由 Redis 组成,提供数据缓存功能。
- 数据库:存储用户、项目、权限等元数据,通常使用 PostgreSQL。
- 对象存储:支持多种存储后端(如文件系统、S3、Ceph),用于存储实际的镜像层。
- 基础服务
- 核心服务:处理用户身份验证、项目和镜像管理,以及任务调度。
- Job Service:负责异步任务的处理,如镜像复制和漏洞扫描。
- Notary:提供镜像签名和验证功能。
- Clair/Trivy:负责镜像的安全漏洞扫描。
- Web UI
- 提供用户友好的界面,方便用户进行镜像和项目的管理。
应用场景
- 容器化应用开发与部署
- 开发人员可以将构建好的镜像推送到 Harbor 中进行存储和管理,运维人员可以从 Harbor 中拉取镜像部署到生产环境。
- 多环境镜像分发
- 支持镜像在不同环境(如开发、测试、生产)之间的分发和同步,确保版本一致性。
- 容器镜像安全管理
- 通过漏洞扫描和访问控制功能,确保镜像的安全性和合规性。
二、安装
前置条件
硬件
最低硬件要求
- CPU:2核
- 内存:4GB
- 磁盘:40GB
推荐硬件配置
- CPU:4核
- 内存:8GB
- 磁盘:160GB
软件
确保已经安装了docker,docker-compose,参考文档:https://www.cnblogs.com/xiao987334176/p/18809253
下载最新版本的安装包
https://github.com/goharbor/harbor/releases
下载最新在线安装包,得到文件harbor-offline-installer-v2.12.2.tgz
解压文件
cd /data/
tar zxvf harbor-offline-installer-v2.12.2.tgz
复制配置文件
cd harbor/
cp harbor.yml.tmpl harbor.yml
修改以下配置,主要修改端口,证书,数据目录
hostname: harbor.qq.com
http:
port: 8082
https:
port: 8083
# The path of cert and key files for nginx
certificate: /data/harbor/cert/qq.com.pem
private_key: /data/harbor/cert/qq.com.key # The default data volume
data_volume: /data/harbor
参数说明:
hostname,访问主机名,必须要设置,否则无法安装
http,设置http访问的端口,由于端口被占用了,所以改成了8082
https,设置https访问的端口,由于端口被占用了,所以改成了8083
certificate,private_key,这2个是配置SSL证书的。因为公司花钱买了通配符的SSL证书,能匹配所有域名,直接拿来用了。
如果你没有SSL证书,可以不做配置,把https部分注释掉即可。
data_volume,数据存放目录,建议放到一个比较大的磁盘空间里面。
本地安装
bash prepare
bash install.sh
安装完成后在本地生成docker-compose.yml文件,此时可以启动harbor服务;
docker-compose up -d
访问域名
https://harbor.qq.com:8083/
初始的默认用户是admin,密码是Harbor12345

登录之后,可以修改密码。
登录之后效果如下:

三、使用
项目
新建一个项目,比如dify

访问级别,如果勾选公开,那么所有人可以在不登录的情况下,下载镜像。慎重选择,这里不勾选。
用户
一般,我们会创建一个普通用户,来进行镜像的下载和上传。 而不是直接用管理员账户admin
点击用户管理,创建用户

创建一个用户devops,注意密码必须符合密码复杂性要求的

如果设置密码比较纠结,可以找一个在线生成的,比如:https://www.strongpasswordgenerator.org/zh-cn/
进入项目dify,添加成员

添加成员devops,设置为项目管理员

四、镜像推送
首先修改docker配置/etc/docker/daemon.json,增加harbor地址
"insecure-registries": ["harbor.qq.com:8083"]
修改完成后,重启docker
systemctl restart docker
比如将nginx镜像推送到项目dify
先登录到harbor
# docker login harbor.qq.cn:8083
user:devops
password:
Login Succeeded
下载nginx镜像
docker pull nginx:latest
推送镜像
docker tag nginx:latest harbor.qq.com:8083/dify/nginx:latest
docker push harbor.qq.com:8083/dify/nginx:latest
查看镜像是否存在

五、镜像清理
比如java项目经常更新迭代,那么harbor里面会产生很多镜像。运行半年以上,可能harbor磁盘就会达到100G以上甚至更大。
但是一般情况下,很多很早的镜像,没有必要存储,需要进行清理。比如:保留最近推送的10个镜像。
harbor提供镜像清理策略,进入项目策略,添加规则

保留最近推送的10个镜像

添加定时器

设置为每周执行

注意:项目里面的清理策略,删除的镜像会在回收站里面,所以还需要在回收站里面,进行彻底删除。
点击清理服务,设置为每周

这样,镜像就会彻底清理了,释放磁盘空间!
ubuntu 22.04安装harbor的更多相关文章
- Ubuntu 22.04 安装 utools 时的疑难杂症
Error: libcrypto.so.1.1 原因:libcrypto.so.1.1 该依赖的版本不对,ubuntu 默认是使用的 openssl3 的依赖 这个是 openssl1 的 wget ...
- Ubuntu 22.04 安装搜狗输入法
下载搜狗输入法 下载地址https://shurufa.sogou.com/linux 也可以命令下载 wget https://ime.sogouimecdn.com/202212182151/3b ...
- Ubuntu 22.04 安装 VMWare 16.2.3 后无法启动
异常日志: 2022-06-13T03:49:56.019Z In(05) host-29676 In file included from /tmp/modconfig-XR2GVI/vmmon-o ...
- ubuntu 22.04安装多个gcc
sudo apt install gcc-9 g++-9 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 - ...
- Ubuntu 22.04 安装 VMware Tools
VM 下的 install VMWare Tools 终端下载 VMware Tools sudo apt install open-vm-tools-desktop -y reboot
- Ubuntu 22.04 LTS 安装 0.A.D 实时策略游戏 并汉化
众所周知,Linux生态中,能玩的正儿八经的大型游戏其实没几个,而 0.A.D 这个游戏就是这其中之一.这是一个类似于帝国时代的实时策略游戏,开源跨平台,这是其官方网站:https://play0ad ...
- Ubuntu 18.04 安装MySQL
最近在写东西的时候,需要用到MySQL,在网上查了一下,都说Ubuntu18.04不能安装MySQL5.7.22, 总觉的不可能,所以自己就研究了一下,然后分享给大家 工具/原料 VMware W ...
- Ubuntu 18.04 安装博通(Broadcom)无线网卡驱动
目录 Ubuntu 18.04 安装博通(Broadcom)无线网卡驱动 Package gcc is not configured yet. 解决办法 history history | grep ...
- Ubuntu 18.04安装MongoDB 4.0(社区版)
Ubuntu 18.04(虚拟机VirtualBox上),MongoDB 4.0, 听室友说,23点有世界杯决赛呢!可是,孤要写博文的啊!以记录这忙乱的下午和晚间成功安装了一个软件到Linux上.—— ...
- Ubuntu 16.04 安装 Wireshark分析tcpdump的pcap包——sudo apt install wireshark-qt
tcpdump 的抓包保存到文件的命令参数是-w xxx.cap 抓eth1的包 tcpdump -i eth1 -w /tmp/xxx.cap 抓 192.168.1.123的包 tc ...
随机推荐
- Zookeeper的原理和架构设计,以及应用场景
什么是 Zookeeper Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如: 统一命名服务 状态同步服务 集群 ...
- Nginx设置HTTPS监听
原文链接:https://blog.liuzijian.com/post/03708e47-03bd-4efe-a569-16f0eedc6158.html 1. 获取 SSL 证书 首先,你需要获取 ...
- manim边做边学--淡入淡出变换
今天介绍Manim中用于淡入淡出变换的3个动画类: FadeToColor:聚焦于对象颜色的平滑转换,通过渐变增强视觉效果 FadeTransform:实现不同对象之间的渐变替换,让元素转换更加连贯 ...
- dart中Set类型详解
01==> Set 它的主要功能是去除重复的数组内容: Set是没有顺序且不能够重复的数组,所以不能够通过索引值去获取内容 var s = new Set(); s.add('苹果'); s.a ...
- Spring AI 提交 PR 实战指南:避免常见坑
今天,我们将简单地了解如何向 Spring AI 提交 PR(Pull Request).在这个过程中,有一些常见的坑需要大家注意和避免,特别是在 Git 操作方面.我们会重点关注提交信息的规范,如何 ...
- JMeter中使用嵌套变量方法
JMeter中使用嵌套变量方法 在使用JMeter进行接口测试时,经常遇到需要动态生成变量名并引用其值的情况.在JMeter中,嵌套变量的使用可以帮助我们实现这一目标.本文将详细介绍如何在JMeter ...
- Luogu P10869 LCMs 题解 [ 黄 ] [ lcm ] [ 最短路 ]
LCMs:很好的数论和构造题. 显然我们不可以直接建图跑最短路. 于是考虑分讨. 倍数关系 答案显然为 \(\max(a,b)\). 相等关系 答案显然为 \(0\). \(\gcd(a,b)> ...
- DeepSeek+PageAssist实现本地大模型联网
技术背景 在前面的几篇博客中,我们分别介绍过在Ubuntu上部署DeepSeek.在Windows上部署DeepSeek.使用AnythingLLM构建本地知识库的方法,其中还包含了ChatBox的基 ...
- RowCellMenuCustomizations 实现 Command 绑定
给GridControl的行数据单元格添加菜单项,并通过Command绑定的方式实现菜单点击动作触发: <dxg:GridControl x:Name="mainGrid" ...
- 发那科机器人R2000iC齿轮箱维修方法步骤归纳
一.发那科机器人R2000iC齿轮箱常见故障类型及原因 齿轮磨损:长时间的重载工作或润滑不良可能导致齿轮磨损,表现为噪音增大.振动加剧等. 轴承故障:轴承承受了齿轮箱的径向和轴向载荷,其故障可能导致齿 ...