本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Harbor 是一个开源的可信云原生 registry,用于存储、签名和扫描内容。它在开源 Docker distribution 的基础上,添加了安全、身份认证和管理等功能,适用于企业级容器镜像的全生命周期管理。
Harbor 官方概述
Bitnami Harbor Helm Chart 基于 goharbor/harbor-helm 开发,具备以下特性:
Harbor 适用于需要安全管理容器镜像的云原生环境,主要使用场景包括:
部署 Harbor 需满足以下环境要求:
使用默认配置安装 chart,发布名称为 my-release:
helm install my-release oci://registry-1.docker.io/bitnamicharts/harbor
指定自定义 registry 和仓库路径:
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 版本。
通过设置 metrics.enabled=true 可启用 Prometheus 监控集成,将 Harbor 原生 Prometheus 端口暴露在容器和服务中,并添加自动发现注解。
需已安装 Prometheus 或 Prometheus Operator。推荐使用 Bitnami Prometheus Helm chart 或 Bitnami Kube Prometheus Helm chart。
设置 metrics.serviceMonitor.enabled=true 可部署 ServiceMonitor 对象,实现与 Prometheus Operator 的集成。需确保集群已安装 Prometheus Operator CRDs,否则会报错:
no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"
Harbor 核心服务支持两种暴露方式:
设置 exposureType=ingress,需满足:
设置 exposureType=proxy,支持三种服务类型:
外部 URL 用于在 Harbor 门户中生成 docker/helm 命令示例,格式为 protocol://domain[:port]。配置规则:
domain 为 ingress.core.hostname 的值domain 为 service.clusterIP 的值domain 为 Kubernetes 节点 IPdomain 为自定义域名,需配置 CNAME 指向云厂商提供的负载均衡器地址通过设置 migration.enabled=true 启用数据库 schema 迁移 Job。该 Job 依赖 Helm hooks,升级操作会等待迁移完成后继续。
设置 internalTLS.enabled=true 可启用 core、jobservice、portal、registry 和 trivy 组件间的 TLS 通信。支持两种配置方式:
*.tls.existingSecret(各组件配置项下)指定现有证书密钥可通过 internalTLS.caBundleSecret 注入自定义 CA 证书(密钥需包含 ca.crt 文件)。
支持三种持久化方式:
storageClass 指定存储类,也可通过 existingClaim 使用现有 PVazure、gcs、s3、swift 和 osscore.secret、jobservice.secret 和 registry.secret 配置,需提供密钥内容(非密钥名称)core.secretName 指定现有密钥为避免 Helm 升级时密钥变更,需提前配置并固定密钥值(详见 Issue #107)。支持通过 existingSecret 和 existingEnvVarsSecret 完全自定义密钥对象。
注意:
HARBOR_ADMIN_PASSWORD仅用于初始化,后续通过门户修改密码后,密钥中的值不会同步更新。
可通过各组件的 sidecars 参数添加 Sidecar 容器:
core: sidecars: - name: metrics-exporter image: your-exporter-image:latest imagePullPolicy: Always ports: - name: metrics containerPort: 9100
通过 initContainers 参数添加 Init 容器:
core: initContainers: - name: init-config image: busybox:latest command: ["sh", "-c", "echo 'init config' > /config/init.txt"] volumeMounts: - name: config mountPath: /config
通过各组件的 extraEnvVars 添加环境变量:
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 版本 | "" |
clusterDomain | Kubernetes 集群域名 | cluster.local |
commonAnnotations | 所有资源的通用注解 | {} |
commonLabels | 所有资源的通用标签 | {} |
extraDeploy | 额外部署的资源清单(模板化) | [] |
diagnosticMode.enabled | 启用诊断模式(禁用所有探针并覆盖命令) | false |
diagnosticMode.command | 诊断模式下覆盖所有容器的命令 | ["sleep"] |
diagnosticMode.args | 诊断模式下覆盖所有容器的参数 | ["infinity"] |
| 参数名 | 描述 | 默认值 |
|---|---|---|
adminPassword | Harbor 管理员初始密码(建议通过门户修改) | "" |
existingSecret | 存储管理员密码的现有 Secret 名称 | "" |
existingSecretAdminPasswordKey | 现有 Secret 中管理员密码的密钥名(默认 HARBOR_ADMIN_PASSWORD) | "" |
externalURL | Harbor 核心服务的外部 URL | [***] |
proxy.httpProxy | HTTP 代理服务器 URL | "" |
proxy.httpsProxy | HTTPS 代理服务器 URL | "" |
proxy.noProxy | 不使用代理的地址列表 | 127.0.0.1,localhost,.local,.internal |
proxy.components | 应用代理配置的组件列表 | ["core","jobservice","trivy"] |
logLevel | Harbor 服务日志级别(可选值: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.type | NGINX Proxy 服务类型 | Load*** |
service.ports.http | NGINX Proxy HTTP 端口 | 80 |
service.ports.https | NGINX Proxy HTTPS 端口 | 443 |
service.nodePorts.http | NodePort 模式下的 HTTP 端口 | "" |
service.nodePorts.https | NodePort 模式下的 HTTPS 端口 | "" |
自 2025 年 8 月 28 日起,Bitnami 将升级其公共镜像仓库,推出 Bitnami Secure Images 计划,主要变更如下:
latest 标签,用于开发环境)这些变更旨在提升软件供应链安全性,推广最佳实践。详情参见 Bitnami Secure Images 公告。

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429