0. 导读

在云原生落地流程中,Docker 镜像构建完成后,必须通过私有镜像仓库统一托管,才能被 K8s 集群拉取部署。

如果直接使用公共镜像仓库,会出现三大致命问题:

  • Java业务镜像、Python Agent镜像、LLM/向量库镜像代码泄露、存在安全风险

  • 公共仓库速度慢、不稳定,CI/CD 流水线经常拉取超时

  • 无版本管理、无漏洞扫描、无法追溯线上镜像版本,生产事故无法复盘

Harbor 是企业云原生体系的核心镜像仓库,也是 Java 微服务 + Agent 智能体平台上线生产环境的必经一环

本文带你从零搭建生产级 Harbor、规范双栈镜像命名版本、配置权限、漏洞扫描、镜像清理策略,彻底补齐 AI 项目工程化最后一块短板。


1. 为什么生产环境必须用 Harbor,不能用 Docker Hub?

1.1 企业落地核心诉求

对于我们的技术栈(Java业务底座 + Python LangChain/LangGraph Agent),镜像仓库不再是简单“存镜像”:

  • 私有化存储:AI 智能体代码、业务服务代码禁止外流

  • 版本可追溯:每一次迭代镜像对应明确版本,回滚有据可依

  • 安全扫描:Python依赖、Java依赖漏洞高频,必须镜像漏洞检测

  • 权限隔离:业务组、AI组、运维组镜像权限分开

  • 生命周期治理:清理废弃镜像,释放集群存储资源

1.2 Harbor 核心优势

  • 开源免费、兼容 Docker 标准镜像

  • 支持多项目、多租户、细粒度权限控制

  • 内置镜像漏洞扫描、镜像签名、安全审计

  • 支持镜像自动清理、镜像复制、离线同步

  • 完美适配 Jenkins/GitLab CI/ArgoCD 流水线


2. Harbor 核心架构与核心概念

不用深究底层源码,掌握开发/工程视角必备概念即可。

2.1 核心组件

  • Registry:真正存储 Docker 镜像的组件

  • UI:可视化管理界面

  • Database:存储用户、项目、权限、镜像元数据

  • Notary:镜像安全签名校验

  • Trivy:镜像漏洞扫描引擎(生产必备)

2.2 核心名词(工作天天用)

  • 项目(Project):镜像文件夹,用来分类不同业务、不同模块

  • 仓库(Repository):具体某个服务的镜像仓库

  • Tag:镜像版本标签

  • Artifact:镜像分层产物


3. 单机快速部署 Harbor(开发/测试/生产通用)

采用 Docker Compose 部署,简单稳定、企业主流方案。

3.1 环境准备

  • Docker、Docker Compose 已安装

  • 服务器内存 4G+(推荐)

3.2 下载离线安装包

wget https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-offline-installer-v2.10.0.tgz
tar xvf harbor-offline-installer-v2.10.0.tgz
cd harbor

3.3 修改配置 harbor.yml

核心修改:域名、密码、关闭https(内网环境)

hostname: 192.168.x.x   # 你的服务器IP
http:
  port: 80
# https 全部注释
harbor_admin_password: Harbor123456  # 自定义密码

3.4 一键安装

./install.sh --with-trivy

--with-trivy:自带漏洞扫描组件,生产必须安装。

3.5 访问地址

浏览器访问:http://服务器IP

默认账号:admin


4. 企业级镜像目录规范(适配Java+Agent双栈)

这是你区别普通开发者的核心亮点,专门适配你的技术体系:Java业务服务 + Python智能体服务 + AI中间件。

4.1 项目分级规范

在 Harbor 中新建三个顶级项目:

  • business-java:Java微服务、业务中台、权限、流程服务

  • ai-agent:Python LangChain/LangGraph RAG、智能体、工具服务

  • ai-middleware:Milvus、Ollama、Redis、Kafka 等AI中间件

4.2 镜像命名规范(生产强制)

格式:IP/项目名/服务名:版本号

示例:

  • Java业务:192.168.x.x/business-java/user-service:v1.2.0

  • Agent智能体:192.168.x.x/ai-agent/rag-service:v2.0.0

  • 向量库:192.168.x.x/ai-middleware/milvus:2.4.0

4.3 Tag版本规范

  • 正式版本:v主版本.次版本.迭代号(v1.2.0)

  • 测试版本:v1.2.0-beta

  • 临时迭代:v1.2.0-dev-20251201

禁止使用 latest 标签上线生产,无法追溯版本、极易引发线上事故。


5. 镜像上传、拉取完整流程

5.1 本地登录私有仓库

docker login 192.168.x.x

5.2 镜像打标签

# Java服务示例
docker tag local-java-demo:latest 192.168.x.x/business-java/demo-service:v1.0.0

# Python Agent示例
docker tag local-rag:latest 192.168.x.x/ai-agent/rag-service:v1.0.0

5.3 推送镜像到Harbor

docker push 192.168.x.x/business-java/demo-service:v1.0.0
docker push 192.168.x.x/ai-agent/rag-service:v1.0.0

5.4 K8s 拉取镜像配置

K8s 中直接使用私有仓库镜像地址部署,配合 ImagePullSecret 做拉取凭证。


6. 生产核心能力:安全扫描 + 镜像生命周期治理

6.1 Trivy 漏洞扫描

Python Agent项目依赖极多、漏洞高发,Java包也存在大量依赖漏洞,必须开启扫描:

  • 推送镜像后自动扫描高危漏洞

  • 阻断漏洞镜像进入生产流水线

  • 支持查看具体漏洞依赖、修复版本

6.2 镜像自动清理策略(企业必备)

长期迭代会堆积大量废弃 Agent、Java 镜像,占用巨大存储。

Harbor 配置生命周期规则:

  • 保留最近 20 个版本镜像

  • 删除超过30天未使用的镜像

  • 禁止删除带 protected 标签的生产稳定镜像


7. 双栈开发者的工程化价值总结

对于 Java底座 + Python Agent + 云原生 技术路线,Harbor 是工程化闭环的关键一环:

  • 统一管理业务镜像、AI智能体镜像、中间件镜像

  • 解决 AI 项目 Demo 无法上线、版本混乱、安全不可控问题

  • 为后续 CI/CD、GitOps 自动化部署提供镜像基础

  • 实现镜像可追溯、可回滚、可审计、可安全管控


8. 总结

  • 生产环境禁止使用公共镜像仓库、禁止 latest 标签

  • Harbor 是云原生 AI 平台的镜像统一入口与安全闸门

  • 规范的双栈镜像分层、版本命名,是企业级项目落地的标准能力

  • 漏洞扫描 + 生命周期清理,保障集群安全与存储稳定

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐