目录
[一、Harbor 简介](#一、Harbor 简介)
[二、环境准备(离线 / 在线部署通用)](#二、环境准备(离线 / 在线部署通用))
[三、Harbor 在线部署流程](#三、Harbor 在线部署流程)
[1. 下载安装包](#1. 下载安装包)
[2. 复制配置模板并修改参数](#2. 复制配置模板并修改参数)
[3. 执行一键安装脚本](#3. 执行一键安装脚本)
[4. 访问 Harbor UI](#4. 访问 Harbor UI)
[四、常用运维命令(启停 / 升级 / 卸载)](#四、常用运维命令(启停 / 升级 / 卸载))
[五、客户端 Docker 对接 Harbor(核心使用步骤)](#五、客户端 Docker 对接 Harbor(核心使用步骤))
[场景 1:Harbor 使用 HTTP(无 SSL,内网测试)](#场景 1:Harbor 使用 HTTP(无 SSL,内网测试))
[场景 2:HTTPS 域名(生产)](#场景 2:HTTPS 域名(生产))
[六、Web UI 基础使用流程](#六、Web UI 基础使用流程)
[1. 创建项目](#1. 创建项目)
[2. 镜像漏洞扫描](#2. 镜像漏洞扫描)
[3. 镜像复制(跨仓库同步)](#3. 镜像复制(跨仓库同步))
[4. 垃圾回收(清理无用镜像层)](#4. 垃圾回收(清理无用镜像层))
[5. 用户与权限管理](#5. 用户与权限管理)
一、Harbor 简介
- 什么是 Harbor
Harbor 是 VMware 开源、企业级私有 Docker 容器镜像仓库,基于 Docker Registry 二次开发,专为企业内部容器镜像管理设计,弥补原生 Registry 无权限、无 UI、无审计、无漏洞扫描等短板。
- 核心功能
- Web 可视化管理界面:图形化上传 / 下载镜像、项目管理、日志查看
- 基于 RBAC 细粒度权限
- 管理员、项目管理员、开发、访客;私有 / 公开项目
- 多仓库、多项目隔离:按业务线划分项目,镜像互不干扰
- 镜像复制同步:主从仓库、跨机房镜像同步(复制策略、定时同步)
- 漏洞扫描(集成 Trivy/Clair):自动扫描镜像高危漏洞,拦截有风险镜像
- 镜像签名与内容信任(Notary):防镜像篡改,生产环境安全校验
- 审计日志:所有推拉镜像、用户操作留痕,满足等保合规
- LDAP/AD/OAuth 集成:对接企业统一账号登录
- 垃圾回收:清理无用镜像层,释放存储
- 支持 Helm Chart 仓库:同时管理容器镜像 + K8s Helm 包
- 组件架构
Proxy:反向代理,统一入口,分发 UI、Registry、API 请求
Core(harbor-core):核心业务逻辑,权限、项目、复制、审计
Registry:底层镜像存储(原生 docker registry)
Database(PostgreSQL):存储用户、项目、权限、日志元数据
Redis:缓存、会话、任务队列
Trivy:镜像漏洞扫描器
Notary:镜像签名服务(可选)
Chart Museum:Helm Chart 仓库(可选)
Jobservice:异步任务(镜像同步、扫描、垃圾回收)
- 适用场景
- 企业内网私有镜像仓库,不对外暴露业务镜像
- K8s 集群统一拉取内部业务镜像
- 镜像安全管控、漏洞检测、权限分级
- 多环境镜像同步(开发 / 测试 / 生产隔离)
二、环境准备(离线 / 在线部署通用)
- 硬件最低配置
CPU:2 核
内存:4GB(低于 4GB 极易卡顿、服务崩溃)
磁盘:50GB+(镜像存储,越大越好)
系统:CentOS7/8、Ubuntu 20.04/22.04、RockyLinux
- 必须预装软件
- Docker Engine 20.10+
- Docker Compose v2(推荐新版)
- 关闭防火墙 / 放行 80、443 端口;关闭 SELinux
- 域名 / IP:建议绑定域名,生产配置 HTTPS 证书
- 环境初始化(CentOS 示例)
bash
# 关闭防火墙、selinux
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 安装docker+compose
yum install -y docker-ce docker-compose-plugin
systemctl enable --now docker
三、Harbor 在线部署流程
1. 下载安装包
官方下载地址:https://github.com/goharbor/harbor/releases
选择 harbor-offline-installer-vx.x.x.tgz(离线包,推荐)或在线包。
bash
# 以 v2.10.0 为例
wget https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-offline-installer-v2.10.0.tgz
tar -zxvf harbor-offline-installer-v2.10.0.tgz
cd harbor
2. 复制配置模板并修改参数
bash
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
关键修改项:
bash
# 1. 访问地址:IP或域名
hostname: 192.168.1.100
# 2. http端口(不配置https则使用80)
http:
port: 80
# 3. https配置(生产必开,测试可注释跳过)
#https:
# port: 443
# certificate: /data/cert/harbor.crt
# private_key: /data/cert/harbor.key
# 4. 管理员初始密码,务必修改
harbor_admin_password: Harbor@123456
# 5. 数据库内置密码,自定义
database:
password: root123
# 6. 镜像持久化存储路径,建议单独磁盘
data_volume: /data/harbor
# 7. 漏洞扫描开启trivy
trivy:
ignore_unfixed: false
skip_update: false
offline_scan: false
3. 执行一键安装脚本
bash
# 基础安装(仅镜像仓库)
./install.sh
# 带Trivy漏洞扫描安装
# ./install.sh --with-trivy
# 带Chart仓库 + Trivy
# ./install.sh --with-trivy --with-chartmuseum
脚本自动拉取镜像、生成 docker-compose.yml、启动所有容器。
4. 访问 Harbor UI
浏览器打开 http://192.168.1.100
默认账号:admin,密码为 harbor.yml 中配置的 harbor_admin_password
四、常用运维命令(启停 / 升级 / 卸载)
进入 harbor 目录执行:
bash
# 停止harbor
docker compose down
# 后台启动
docker compose up -d
# 重启
docker compose restart
# 查看日志
docker compose logs -f
# 修改配置后重载(改harbor.yml后必须执行)
./prepare
docker compose up -d
# 完全卸载(删除容器,数据目录保留)
docker compose down -v
五、客户端 Docker 对接 Harbor(核心使用步骤)
场景 1:Harbor 使用 HTTP(无 SSL,内网测试)
Docker 默认拒绝 HTTP 私有仓库,需配置信任不安全仓库:
bash
# 创建docker配置目录
mkdir -p /etc/docker
vim /etc/docker/daemon.json
写入内容:
bash
{
"insecure-registries": ["192.168.1.100"]
}
重启 docker 生效:
bash
systemctl daemon-reload
systemctl restart docker
场景 2:HTTPS 域名(生产)
将域名证书放入 /etc/docker/certs.d/域名/,无需 insecure-registries 配置
- Docker 登录 Harbor
bash
docker login 192.168.1.100
# 输入账号admin、配置的密码
- 镜像打标签(推送规范)
格式:仓库地址/项目名/镜像名:版本
bash
# 本地原有镜像
docker pull nginx:alpine
# 重打标签,test为harbor里提前创建的项目
docker tag nginx:alpine 192.168.1.100/test/nginx:alpine
- 推送镜像到 Harbor
bash
docker push 192.168.1.100/test/nginx:alpine
- 从 Harbor 拉取镜像
bash
docker pull 192.168.1.100/test/nginx:alpine
六、Web UI 基础使用流程
1. 创建项目
(1)登录 UI → 项目 → 新建项目
(2)参数:
- 项目名称:业务名(test/dev/prod)
- 访问级别:私有(需登录拉取)/ 公开(无需登录直接拉取)
- 存储配额:限制镜像容量
(3)权限:添加成员,分配项目管理员 / 开发者 / 访客
2. 镜像漏洞扫描
- 进入项目镜像详情
- 点击「扫描」,Trivy 自动检测 CVE 漏洞
- 可配置:推送镜像后自动扫描、禁止高危漏洞镜像推送
3. 镜像复制(跨仓库同步)
- 管理员页面 → 仓库管理 → 新建目标(填写备用 Harbor 地址账号)
- 创建复制规则:按项目 / 标签匹配,定时 / 实时同步镜像
4. 垃圾回收(清理无用镜像层)
- 系统管理 → 垃圾回收
- 先只读模式检查,确认无占用再执行清理,释放磁盘空间
5. 用户与权限管理
- 本地用户:手动新增开发账号
- LDAP 集成:对接企业 AD,统一登录,不用单独维护账号
七、生产环境最佳实践
- 启用 HTTPS:使用正式 SSL 证书,禁止公网 HTTP
- 划分多项目隔离环境:dev、test、prod 分开,prod 项目仅管理员可推送
- 开启 Trivy 自动扫描,阻断高危漏洞镜像
- 配置镜像复制,异地多活备份镜像
- 数据目录挂载独立高速磁盘,定期备份 PostgreSQL 数据库
- 对接 LDAP 统一身份认证,关闭 admin 日常登录权限
- 定期执行垃圾回收,避免磁盘占满
- K8s 节点全部配置 Harbor 仓库信任,镜像拉取统一走内网 Harbor