Harbor搭建指南

高效管理 Docker 容器应用离不开可靠的镜像仓库。但出于安全管控、提升效率(尤其解决网络访问限制)等需求,部署私有镜像仓库势在必行。Harbor 是企业级私有 Docker Registry 的优选方案。它在开源 Registry 基础上,提供了强大的管理功能:基于角色的访问控制(RBAC)、镜像漏洞扫描、LDAP/AD 集成、镜像复制策略、空间清理、直观的管理 UI 和审计日志等。这些特性使其能有效管理敏感镜像并提升运维效率。


1.harbor介绍

Harbor 是由 VMware 开源并捐赠给 CNCF 的企业级容器镜像仓库,提供镜像存储、安全扫描、权限管理和跨环境复制等核心功能,已成为私有化容器管理的标准解决方案。其核心优势在于强大的企业级安全能力,包括集成漏洞扫描工具(如 Trivy/Clair)、内容签名验证和细粒度 RBAC 权限控制,支持无缝对接 LDAP/AD 认证体系;同时具备高效的运维特性,例如跨数据中心镜像同步和自动化垃圾回收机制,大幅简化分布式架构下的镜像治理。作为开源生态的关键组件,Harbor 深度集成 Kubernetes 并支持 Helm Chart 等云原生制品管理,满足 DevOps 全流程需求。然而,Harbor 的部署复杂度较高,依赖 PostgreSQL、Redis 等多组件协同,初始配置和维护成本显著高于轻量级仓库(如 Docker Registry);其资源消耗也相对较大,对硬件要求更为严格,且部分高级功能(如多集群复制策略)对小型团队可能造成冗余。综合而言,Harbor 尤其适合中大型企业构建安全合规、多环境协同的镜像供应链,但在资源有限或功能需求简单的场景下,需谨慎评估其运维开销。

以下是harbor的各个组件

组件名称核心作用关键功能说明端口/依赖
harbor-coreHarbor 核心服务提供 API 接口、用户权限管理、项目配置、Webhook 等核心逻辑依赖 harbor-db 和 redis
harbor-db元数据存储数据库存储用户信息、项目数据、镜像元数据、复制策略等(PostgreSQL)健康状态表明数据服务正常
harbor-jobservice异步任务处理器执行镜像复制、垃圾回收、漏洞扫描等后台任务通过 redis 协调任务队列
harbor-log集中式日志收集器聚合所有组件日志,提供统一查询接口127.0.0.1:1514→10514/tcp
harbor-portalWeb 用户界面 (UI)提供图形化管理界面(基于 Vue.js),操作镜像、项目、用户等由 nginx 代理访问
nginx反向代理和入口网关接收外部请求,路由到后端服务(核心/UI/注册表)对外端口:
HTTP: 14080
HTTPS: 14443
redis缓存与会话存储缓存数据库查询、存储用户会话、管理任务队列加速系统性能
registryDocker 镜像存储服务实际存储镜像文件(Blobs)和清单(Manifests)依赖存储卷持久化数据
registryctl注册表控制服务管理 registry 组件(触发垃圾回收、配置更新等操作)与 registry 交互


2.harbor安装

到github找到最新版的安装包:https://github.com/goharbor/harbor/releases 下载最新版本的harbor-offline-installer-(版本号).tgz安装包。

解压下载好的离线安装包:

tar -xvf  harbor-offline-installer-v2.13.1.tgz

进入harbor安装目录,修改配置文件

cd harbor
#复制 harbor的配置文件并改名harbor.yml
cp -ar harbor.yml.tmpl harbor.yml
#修改文件
vim harbor.yml

修改以下内容(建议使用HTTPS):

hostname: #修改成你的域名或者IP地址
port: #端口
certificate: #证书crt路径
private_key: #证书key路径
harbor_admin_password: 123456  # 配置管理员用户的密码
data_volume: /data/harbor  #配置持久化路径

注意:使用端口映射可能会导致报错,请勿使用端口映射。
完成并保存配置后执行安装:

# 预处理
./prepare
# 安装Harbor
./install.sh
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating redis         ... done
Creating registry      ... done
Creating harbor-db     ... done
Creating harbor-portal ... done
Creating registryctl   ... done
Creating harbor-core   ... done
Creating harbor-jobservice ... done
Creating nginx             ... done
✔ ----Harbor has been installed and started successfully.----

安装完成后进行检查,然后可以输入刚才设定的地址在浏览器即可访问:

root@k8smgt:~/harbor# docker-compose ps
      Name                     Command                  State                                               Ports
----------------------------------------------------------------------------------------------------------------------------------------------------------
harbor-core         /harbor/entrypoint.sh            Up (healthy)
harbor-db           /docker-entrypoint.sh 14 15      Up (healthy)
harbor-jobservice   /harbor/entrypoint.sh            Up (healthy)
harbor-log          /bin/sh -c /usr/local/bin/ ...   Up (healthy)   127.0.0.1:1514->10514/tcp
harbor-portal       nginx -g daemon off;             Up (healthy)
nginx               nginx -g daemon off;             Up (healthy)   0.0.0.0:14080->8080/tcp,:::14080->8080/tcp, 0.0.0.0:14443->8443/tcp,:::14443->8443/tcp
redis               redis-server /etc/redis.conf     Up (healthy)
registry            /home/harbor/entrypoint.sh       Up (healthy)
registryctl         /home/harbor/start.sh            Up (healthy)

参考文档:https://xie.infoq.cn/article/faa9ee456452891828cc080b8

REK2 搭建6节点K8S教程(三):RKE节点安装 REK2 搭建6节点K8S教程(二):HAProxy + Keepalived 高可用 Jenkins + CICD流水线构建指南
View Comments
There are currently no comments.