专属域名
文档搜索
提交工单
轩辕助手
Run助手
返回顶部
快速返回页面顶部
收起
收起工具栏

bitnamicharts/harbor Docker 镜像 - 轩辕镜像

镜像简介

Bitnami提供的Helm chart,用于简化企业级Docker镜像仓库Harbor在Kubernetes环境中的部署和管理。

镜像统计信息

收藏数: 7

下载次数: 4069064

状态: active

发布者: bitnamicharts

类型:

harbor
bitnamicharts/harbor
Bitnami提供的Helm chart,用于简化企业级Docker镜像仓库Harbor在Kubernetes环境中的部署和管理。
7 收藏0 次下载activebitnamicharts
🚀专业版镜像服务,面向生产环境设计
版本下载
🚀专业版镜像服务,面向生产环境设计

Harbor 镜像文档

镜像概述和主要用途

Harbor 是一个开源的可信云原生 registry,用于存储、签名和扫描内容。它在开源 Docker distribution 的基础上,添加了安全、身份认证和管理等功能,适用于企业级容器镜像的全生命周期管理。

Harbor 官方概述

核心功能和特性

Bitnami Harbor Helm Chart 基于 goharbor/harbor-helm 开发,具备以下特性:

  • 支持从私有 registry 拉取所有所需镜像(通过全局 Docker 镜像参数配置)
  • Redis® 和 PostgreSQL 作为 chart 依赖进行管理
  • 为所有部署提供可配置的存活探针(Liveness Probe)和就绪探针(Readiness Probe)
  • 采用新的 Helm chart 标签格式
  • 默认使用 Bitnami 非 root 容器镜像
  • 支持 Harbor 可选组件部署
  • 可配置资源请求与限制,适应不同负载场景
  • 内置 Prometheus 监控集成能力
  • 支持内部 TLS 加密通信,可自定义证书或自动生成
  • 灵活的流量暴露方式(Ingress/Proxy)
  • 支持数据库 schema 自动迁移
  • 兼容 Sidecar 和 Init 容器扩展
  • 支持自定义环境变量注入

使用场景和适用范围

Harbor 适用于需要安全管理容器镜像的云原生环境,主要使用场景包括:

  • 企业内部容器镜像仓库:提供私有、安全的镜像存储,支持访问控制和权限管理
  • CI/CD 流程集成:作为镜像构建流水线的存储端点,支持镜像签名和漏洞扫描,确保部署安全性
  • 多集群镜像分发:通过复制功能实现跨集群镜像同步,适用于混合云或多云环境
  • 合规与审计:提供镜像操作审计日志,满足企业合规要求
  • 开发与测试环境:为开发团队提供本地镜像仓库,加速镜像拉取和部署流程

前提条件

部署 Harbor 需满足以下环境要求:

  • Kubernetes 集群版本 1.23+
  • Helm 版本 3.8.0+
  • 底层基础设施支持 PV 动态供应
  • 支持 ReadWriteMany 卷(用于部署扩展)

安装方法

Helm 安装(推荐)
快速安装

使用默认配置安装 chart,发布名称为 my-release:

console
helm install my-release oci://registry-1.docker.io/bitnamicharts/harbor
自定义安装

指定自定义 registry 和仓库路径:

console
helm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/harbor

注意:需将 REGISTRY_NAME 和 REPOSITORY_NAME 替换为实际的 Helm chart 仓库地址。例如,Bitnami 官方仓库需使用 REGISTRY_NAME=registry-1.docker.io 和 REPOSITORY_NAME=bitnamicharts。

配置说明

资源请求与限制

Bitnami charts 允许为所有容器设置资源请求(requests)和限制(limits),配置位于 resources 参数下。生产环境中必须设置资源请求,并根据实际负载调整。

chart 提供 resourcesPreset 参数,可通过预设自动配置 resources 部分(详见 bitnami/common chart)。但生产环境不建议依赖预设,需根据具体需求手动配置。

滚动标签与不可变标签

生产环境强烈建议使用不可变标签(immutable tags),避免因标签更新导致部署意外变更。Bitnami 会在主容器更新、重大变更或发现严重漏洞时,发布新的 chart 版本。

Prometheus 监控集成

通过设置 metrics.enabled=true 可启用 Prometheus 监控集成,将 Harbor 原生 Prometheus 端口暴露在容器和服务中,并添加自动发现注解。

前置条件

需已安装 Prometheus 或 Prometheus Operator。推荐使用 Bitnami Prometheus Helm chart 或 Bitnami Kube Prometheus Helm chart。

Prometheus Operator 集成

设置 metrics.serviceMonitor.enabled=true 可部署 ServiceMonitor 对象,实现与 Prometheus Operator 的集成。需确保集群已安装 Prometheus Operator CRDs,否则会报错:

text
no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"
流量暴露配置

Harbor 核心服务支持两种暴露方式:

Ingress 控制器(推荐生产环境)

设置 exposureType=ingress,需满足:

  • 集群已安装 Ingress 控制器
  • 若禁用 TLS,拉取/推送镜像时需显式指定端口(详见 Issue #5291)
NGINX Proxy(简单测试环境)

设置 exposureType=proxy,支持三种服务类型:

  • ClusterIP:仅集群内部可访问,通过集群内 IP 暴露
  • NodePort:通过节点 IP:静态端口暴露,集群外部可访问
  • Load***:使用云厂商负载均衡器暴露,需配置 DNS 解析
外部 URL 配置

外部 URL 用于在 Harbor 门户中生成 docker/helm 命令示例,格式为 protocol://domain[:port]。配置规则:

  • Ingress 暴露:domain 为 ingress.core.hostname 的值
  • ClusterIP 暴露:domain 为 service.clusterIP 的值
  • NodePort 暴露:domain 为 Kubernetes 节点 IP
  • Load*** 暴露:domain 为自定义域名,需配置 CNAME 指向云厂商提供的负载均衡器地址
  • 代理后端部署:设置为代理服务器 URL
数据库 Schema 更新

通过设置 migration.enabled=true 启用数据库 schema 迁移 Job。该 Job 依赖 Helm hooks,升级操作会等待迁移完成后继续。

内部 TLS 加密

设置 internalTLS.enabled=true 可启用 core、jobservice、portal、registry 和 trivy 组件间的 TLS 通信。支持两种配置方式:

  • 通过 *.tls.existingSecret(各组件配置项下)指定现有证书密钥
  • 未指定时自动生成证书

可通过 internalTLS.caBundleSecret 注入自定义 CA 证书(密钥需包含 ca.crt 文件)。

数据持久化配置

支持三种持久化方式:

  • 禁用:数据不持久化,Pod 重建后丢失
  • Persistent Volume Claim(默认):需集群存在默认 StorageClass,或通过 storageClass 指定存储类,也可通过 existingClaim 使用现有 PV
  • 外部存储(仅镜像和图表):支持 azure、gcs、s3、swift 和 oss
密钥与证书管理
  • 密钥(Secrets):用于加密和组件间安全通信,通过 core.secret、jobservice.secret 和 registry.secret 配置,需提供密钥内容(非密钥名称)
  • 证书:用于令牌加密/解密,通过 core.secretName 指定现有密钥

为避免 Helm 升级时密钥变更,需提前配置并固定密钥值(详见 Issue #107)。支持通过 existingSecret 和 existingEnvVarsSecret 完全自定义密钥对象。

注意:HARBOR_ADMIN_PASSWORD 仅用于初始化,后续通过门户修改密码后,密钥中的值不会同步更新。

Sidecar 和 Init 容器配置

可通过各组件的 sidecars 参数添加 Sidecar 容器:

yaml
core:
  sidecars:
    - name: metrics-exporter
      image: your-exporter-image:latest
      imagePullPolicy: Always
      ports:
        - name: metrics
          containerPort: 9100

通过 initContainers 参数添加 Init 容器:

yaml
core:
  initContainers:
    - name: init-config
      image: busybox:latest
      command: ["sh", "-c", "echo 'init config' > /config/init.txt"]
      volumeMounts:
        - name: config
          mountPath: /config
环境变量注入

通过各组件的 extraEnvVars 添加环境变量:

yaml
core:
  extraEnvVars:
    - name: LOG_LEVEL
      value: "error"

也可通过 extraEnvVarsCM 或 extraEnvVarsSecret 引用 ConfigMap 或 Secret 中的环境变量。

配置参数

全局参数
参数名描述默认值
global.imageRegistry全局 Docker 镜像仓库地址""
global.imagePullSecrets全局镜像拉取密钥数组[]
global.defaultStorageClass全局默认存储类""
global.security.allowInsecureImages是否允许跳过镜像验证false
global.compatibility.openshift.adaptSecurityContext调整安全上下文以兼容 OpenShift restricted-v2 SCC(可选值:auto/force/disabled)auto
通用参数
参数名描述默认值
nameOverride部分覆盖资源名称(保留 release 名称)""
fullnameOverride完全覆盖资源名称""
apiVersions覆盖 .Capabilities 报告的 Kubernetes API 版本[]
kubeVersion覆盖 .Capabilities 报告的 Kubernetes 版本""
clusterDomainKubernetes 集群域名cluster.local
commonAnnotations所有资源的通用注解{}
commonLabels所有资源的通用标签{}
extraDeploy额外部署的资源清单(模板化)[]
diagnosticMode.enabled启用诊断模式(禁用所有探针并覆盖命令)false
diagnosticMode.command诊断模式下覆盖所有容器的命令["sleep"]
diagnosticMode.args诊断模式下覆盖所有容器的参数["infinity"]
Harbor 通用参数
参数名描述默认值
adminPasswordHarbor 管理员初始密码(建议通过门户修改)""
existingSecret存储管理员密码的现有 Secret 名称""
existingSecretAdminPasswordKey现有 Secret 中管理员密码的密钥名(默认 HARBOR_ADMIN_PASSWORD)""
externalURLHarbor 核心服务的外部 URL[***]
proxy.httpProxyHTTP 代理服务器 URL""
proxy.httpsProxyHTTPS 代理服务器 URL""
proxy.noProxy不使用代理的地址列表127.0.0.1,localhost,.local,.internal
proxy.components应用代理配置的组件列表["core","jobservice","trivy"]
logLevelHarbor 服务日志级别(可选值:fatal/error/warn/info/debug/trace)debug
internalTLS.enabled为核心组件启用内部 TLS 通信false
internalTLS.caBundleSecret包含自定义 CA 的 Secret 名称(注入信任链)""
ipFamily.ipv6.enabled为 NGINX 组件启用 IPv6 监听true
ipFamily.ipv4.enabled为 NGINX 组件启用 IPv4 监听true
cache.enabled启用 Redis 清单缓存(提升并发拉取性能)false
cache.expireHours缓存过期时间(小时)24
database.maxIdleConns每个组件的数据库空闲连接池上限100
database.maxOpenConns每个组件的数据库最大打开连接数900
流量暴露参数
参数名描述默认值
exposureType流量暴露方式(可选值:ingress/proxy/none)proxy
service.typeNGINX Proxy 服务类型Load***
service.ports.httpNGINX Proxy HTTP 端口80
service.ports.httpsNGINX Proxy HTTPS 端口443
service.nodePorts.httpNodePort 模式下的 HTTP 端口""
service.nodePorts.httpsNodePort 模式下的 HTTPS 端口""

⚠️ 重要通知:Bitnami 镜像仓库即将变更

自 2025 年 8 月 28 日起,Bitnami 将升级其公共镜像仓库,推出 Bitnami Secure Images 计划,主要变更如下:

  • 首次向社区用户开放安全优化版容器镜像
  • 逐步弃用免费 tier 中的非强化 Debian 基础镜像,仅保留少量强化镜像(仅 latest 标签,用于开发环境)
  • 8 月 28 日起,两周内所有现有镜像(含历史版本标签,如 2.50.0、10.6)将从公共仓库(docker.io/bitnami)迁移至 "Bitnami Legacy" 仓库(docker.io/bitnamilegacy),且不再更新
  • 生产环境建议使用 Bitnami Secure Images,包含强化容器、更小***面、CVE 透明度(VEX/KEV)、SBOM 和企业支持

这些变更旨在提升软件供应链安全性,推广最佳实践。详情参见 Bitnami Secure Images 公告。

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。

国内拉取方式

docker pull docker.xuanyuan.run/bitnamicharts/harbor:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

官方拉取方式

docker pull bitnamicharts/harbor:<标签>

相关镜像推荐

labring/harbor logo
labring/harbor
by labring
暂无描述
10K+ pulls
上次更新:2 年前
bitnami/harbor-core logo
bitnami/harbor-core
by VMware
认证
Bitnami Secure Image for harbor-core(比特纳米Harbor核心安全镜像)是基于Bitnami严格安全标准构建的容器镜像,专为部署Harbor开源容器镜像仓库的核心服务设计,集成镜像管理、安全扫描、访问控制等功能,通过预配置漏洞修复、最小化攻击面、合规性检查等安全最佳实践,保障企业级容器环境的安全性与稳定性,同时简化部署流程,适用于云原生及混合云架构,助力用户高效管理容器镜像生命周期。
155M+ pulls
上次更新:4 个月前
bitnami/harbor-portal logo
bitnami/harbor-portal
by VMware
认证
Bitnami提供的安全镜像,用于部署Harbor容器镜像仓库的Web门户组件,支持用户界面交互与镜像管理功能。
75M+ pulls
上次更新:4 个月前
bitnami/harbor-registry logo
bitnami/harbor-registry
by VMware
认证
Bitnami harbor-registry 安全镜像
285M+ pulls
上次更新:4 个月前
bitnami/harbor-jobservice logo
bitnami/harbor-jobservice
by VMware
认证
Bitnami提供的Harbor jobservice安全镜像,用于运行Harbor容器镜像仓库的任务处理组件,具备安全加固特性,支持镜像扫描、复制等任务的可靠执行。
15M+ pulls
上次更新:4 个月前
bitnami/harbor-registryctl logo
bitnami/harbor-registryctl
by VMware
认证
Bitnami提供的安全镜像,用于Harbor容器镜像仓库的registry控制组件。
25M+ pulls
上次更新:4 个月前
查看更多 harbor 相关镜像

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
bitnamicharts/harbor
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
免费获取在线技术支持请 提交工单,官方QQ群:13763429 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
免费获取在线技术支持请提交工单,官方QQ群: 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像
交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429