讲师中心 微信公众号
AI工具推荐 视频效率加速

如何使用Docker容器部署Harbor高可用镜像仓库

胖磊小哥_8443

胖磊小哥_8443

发布时间:2026-04-10 17:54:04

|

940人浏览过

|

来源于php中文网

原创

Harbor高可用Docker部署需拆分组件并依赖外部服务:用PostgreSQL集群替代内置DB,Redis集群替代内置缓存,S3/MinIO替代本地存储,多实例共用后端且配置一致shared_secret与统一jobservice调度。

如何使用docker容器部署harbor高可用镜像仓库

使用Docker容器部署Harbor高可用镜像仓库,核心在于避免单点故障,关键不是只跑一个Harbor实例,而是将组件拆分、独立部署,并借助外部服务实现冗余。官方推荐的高可用方案实际基于Kubernetes(如Helm Chart),但若坚持用Docker容器(即Docker Compose方式),需手动解耦并替换默认依赖组件。

拆分Harbor核心组件,脱离内置单体结构

Harbor默认的docker-compose.yml把所有服务(nginx、core、registry、postgresql、redis等)绑在一起,无法横向扩展。高可用第一步是剥离有状态组件,改用外部托管:

  • 数据库:不使用内置PostgreSQL容器,换成独立部署的PostgreSQL集群(如主从+Patroni或云数据库RDS),确保元数据持久且可故障转移
  • 缓存:不使用内置Redis,接入高可用Redis集群(如Redis Sentinel或Cluster模式),供core和jobservice共享会话与锁
  • 镜像存储:不使用本地文件系统,配置为S3、MinIO(多节点部署)、Azure Blob或腾讯云COS等对象存储,天然支持多实例并发读写
  • 日志与审计:将harbor-core和harbor-jobservice的日志输出到stdout,并用Filebeat+ELK或Loki收集,避免日志丢失

部署多个Harbor实例,前端用负载均衡分流

每个Harbor实例(docker-compose部署)保持无状态——即不挂载本地config、不运行postgres/redis,只保留nginx、core、registry、portal、jobservice、clair/trivy(按需)。多个实例共用同一套外部数据库、缓存和对象存储:

Dolphindb Docker
Dolphindb Docker

自动化 DolphinDB Docker 部署,支持自动架构检测(ARM64/x86_64),智能内存分配(50% 规则)以及完整数据持久化。

下载
  • 准备两台及以上服务器,各自拉取Harbor离线安装包(如harbor-offline-installer-v2.11.0.tgz),解压后修改harbor.yml
  • 在harbor.yml中关闭database和redis块,填入外部地址;storage设为s3或minio,配置AK/SK和endpoint
  • 为每个实例分配唯一hostname(如hub-a.example.com、hub-b.example.com),并在负载均衡器(Nginx、HAProxy或云LB)上做TCP 443/80转发,启用会话保持(基于cookie或IP hash)
  • 执行./install.sh --with-notary --with-trivy生成配置,再用docker-compose up -d启动

配置共享会话与任务协调机制

多个Harbor实例必须协同工作,否则会出现UI登录失效、扫描任务重复或失败等问题:

  • 确保所有实例的shared_secret(在harbor.yml中)完全一致,用于JWT token签名验证
  • jobservice依赖Redis做分布式锁和任务队列,必须指向同一个Redis集群,并确认redis://:password@redis-ha:6379/2等地址在各实例配置中统一
  • 关闭任一实例的jobservice自动启停逻辑(通过job_config中设置max_job_workers: 0仅保留core处理轻量任务),集中由指定实例或K8s Job调度器管理重载任务
  • 定期检查core日志中redis connection established和database connected是否稳定,避免因网络抖动导致实例“假死”

验证与日常运维要点

部署完成后不能只测网页能否打开,要覆盖真实协作场景:

  • 从不同客户端(机器A推镜像、机器B拉镜像)同时操作,观察是否都命中同一份镜像层(对比sha256摘要)
  • 手动停掉一台Harbor宿主机,确认push/pull/scan/login等操作在30秒内自动切到另一台,且Web界面无报错弹窗
  • 在PostgreSQL主库执行SELECT * FROM project;,在Redis执行KEYS "harbor_job_*",验证数据实时可见性
  • 备份策略聚焦外部依赖:每天全量备份PostgreSQL,每小时增量同步MinIO桶,Harbor自身配置目录(/config)只需保留一份即可

热门AI工具

更多
Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

383

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3247

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

5905

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

561

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1476

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3938

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

122

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

437

2026.01.13

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

80

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Docker 官方文档
Docker 官方文档

共0课时 | 0人学习

宝塔 Docker 模块使用手册
宝塔 Docker 模块使用手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn