ubuntu 22.04安装harbor

一、概述

Harbor 是一个企业级的云原生容器镜像仓库,由 VMware 开发并贡献给 Cloud Native Computing Foundation (CNCF)。它在传统的 Docker Registry 基础上进行了增强,提供了许多企业级功能,如安全、访问控制、镜像签名、漏洞扫描等。

主要功能

  1. 安全性与漏洞扫描
    • 集成 Clair 或 Trivy 等安全工具,自动扫描镜像中的安全漏洞,确保镜像的安全性。
    • 支持镜像签名和内容信任,确保镜像的完整性和可信度。
  2. 访问控制
    • 提供基于角色的访问控制(RBAC),确保不同用户在仓库中的操作权限得到精确控制。
    • 支持与 LDAP/AD 集成,实现统一的身份验证和权限管理。
  3. 镜像管理
    • 支持镜像的存储、分发和管理,包括镜像的上传、下载、删除等操作。
    • 提供镜像复制功能,支持跨多个 Harbor 实例或其他 Docker 注册表的镜像同步。
    • 支持垃圾回收和存储配额管理,优化存储资源。
  4. 多租户支持
    • 通过项目隔离机制,支持多租户环境下的镜像管理。
  5. Web 界面与 API
    • 提供直观的 Web 界面,方便用户进行镜像管理、项目管理、用户管理等操作。
    • 提供 RESTful API,支持自动化和集成,便于与 CI/CD 流水线对接。
  6. 高可用性
    • 支持多节点部署,确保镜像仓库的持续可用。

架构

Harbor 的架构分为三个主要层级:

  1. 数据访问层
    • K-V 存储:由 Redis 组成,提供数据缓存功能。
    • 数据库:存储用户、项目、权限等元数据,通常使用 PostgreSQL。
    • 对象存储:支持多种存储后端(如文件系统、S3、Ceph),用于存储实际的镜像层。
  2. 基础服务
    • 核心服务:处理用户身份验证、项目和镜像管理,以及任务调度。
    • Job Service:负责异步任务的处理,如镜像复制和漏洞扫描。
    • Notary:提供镜像签名和验证功能。
    • Clair/Trivy:负责镜像的安全漏洞扫描。
  3. Web UI
    • 提供用户友好的界面,方便用户进行镜像和项目的管理。

应用场景

  1. 容器化应用开发与部署
    • 开发人员可以将构建好的镜像推送到 Harbor 中进行存储和管理,运维人员可以从 Harbor 中拉取镜像部署到生产环境。
  2. 多环境镜像分发
    • 支持镜像在不同环境(如开发、测试、生产)之间的分发和同步,确保版本一致性。
  3. 容器镜像安全管理
    • 通过漏洞扫描和访问控制功能,确保镜像的安全性和合规性。

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个镜像

添加定时器

设置为每周执行

注意:项目里面的清理策略,删除的镜像会在回收站里面,所以还需要在回收站里面,进行彻底删除。

点击清理服务,设置为每周

这样,镜像就会彻底清理了,释放磁盘空间!

相关推荐
肖祥12 小时前
windows11 安装WSL2详细过程
dify
Silence4Allen1 天前
Dify 完全指南(一):从零搭建开源大模型应用平台(Ollama/VLLM本地模型接入实战)》
ai·大模型·dify·rag
engchina4 天前
如何在Dify沙盒中安装运行pandas、numpy
numpy·pandas·dify·代码节点
梁萌6 天前
dify升级最新版本(保留已创建内容)
docker·升级·dify
肖祥8 天前
LM Studio本地使用
dify
engchina9 天前
Dify 使用 excel 或者 csv 文件创建知识库
excel·dify
小草cys9 天前
AI工作流自动化与智能应用开发平台
运维·人工智能·自动化·dify
肖祥9 天前
ragflow k8s部署详细过程
dify
q_q王10 天前
dify对接飞书云文档,并且将图片传入飞书文档
python·大模型·飞书·dify·智能体·图片展示
测试老吴13 天前
Dify升级-linux环境下使用zip离线安装方式部署升级
大模型·dify·测试应用