Appearance
Harbor 部署
Harbor 是 VMware 开源的企业级容器镜像仓库,提供镜像管理、访问控制、安全扫描、镜像复制等企业级功能,是目前最流行的私有镜像仓库解决方案之一。
Harbor 的特性
| 功能 | 说明 |
|---|---|
| 多租户 | 项目隔离,精细化权限控制 |
| 安全扫描 | 集成 Trivy 扫描镜像漏洞 |
| 镜像复制 | 跨仓库自动同步镜像 |
| LDAP/AD 集成 | 企业用户认证 |
| Webhook | 镜像推送事件通知 |
| Helm Chart | 支持 Helm Chart 仓库 |
| OCI 兼容 | 支持 OCI 标准制品 |
| 审计日志 | 完整的操作审计 |
系统要求
| 组件 | 最低 | 推荐 |
|---|---|---|
| CPU | 2 核 | 4 核 |
| 内存 | 4 GB | 8 GB |
| 磁盘 | 40 GB | 160 GB+ |
| Docker | 20.10+ | 最新稳定版 |
| Docker Compose | 1.18.0+ | 最新版 |
下载安装包
bash
# 从 GitHub 下载最新版
# https://github.com/goharbor/harbor/releases
# 下载在线安装包(较小,安装时拉取镜像)
wget https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-online-installer-v2.10.0.tgz
# 或下载离线安装包(包含所有镜像,适合内网)
wget https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-offline-installer-v2.10.0.tgz
# 解压
tar xzf harbor-online-installer-v2.10.0.tgz
cd harbor配置 harbor.yml
bash
# 复制配置模板
cp harbor.yml.tmpl harbor.yml
# 编辑配置
vi harbor.yml关键配置项:
yaml
# 主机名(域名或 IP)
hostname: registry.example.com
# HTTP 配置(开发/测试用,生产建议使用 HTTPS)
http:
port: 80
# HTTPS 配置(生产环境必须开启)
https:
port: 443
certificate: /your/certificate/path
private_key: /your/private/key/path
# 管理员密码(首次登录后修改)
harbor_admin_password: Harbor12345
# 数据库配置
database:
password: root123
max_idle_conns: 100
max_open_conns: 900
# 数据存储路径
data_volume: /data
# Trivy 漏洞扫描
trivy:
ignore_unfixed: false
skip_update: false
offline_scan: false
# 日志
log:
level: info
local:
rotate_count: 50
rotate_size: 200m
location: /var/log/harbor安装
bash
# 安装(会下载并启动所有必要服务)
sudo ./install.sh
# 启用 Trivy 漏洞扫描
sudo ./install.sh --with-trivy
# 同时启用 Trivy 和 Notary(镜像签名)
sudo ./install.sh --with-trivy --with-notary安装完成后,Harbor 会创建以下服务:
harbor-core:核心服务harbor-db:PostgreSQL 数据库harbor-redis:Redis 缓存harbor-registry:Docker Registrynginx:反向代理harbor-portal:前端 UI
管理 Harbor
bash
# Harbor 使用 Docker Compose 管理
cd /path/to/harbor
# 启动
docker compose start
# 停止
docker compose stop
# 重启
docker compose restart
# 停止并删除(不删除数据)
docker compose down使用 Harbor
Web UI
访问 http://registry.example.com(或配置的地址),使用 admin 和配置的密码登录。
创建项目
- 登录后点击 新建项目
- 填写项目名称(如
myteam) - 选择访问级别(公开/私有)
- 点击确定
命令行使用
bash
# 登录 Harbor
docker login registry.example.com
# 推送镜像(格式:仓库地址/项目/镜像名:标签)
docker tag myapp:1.0 registry.example.com/myteam/myapp:1.0
docker push registry.example.com/myteam/myapp:1.0
# 拉取镜像
docker pull registry.example.com/myteam/myapp:1.0
# 使用 Compose
# docker-compose.yml 中使用私有仓库镜像配置非 HTTPS 访问
开发环境如果只配置了 HTTP,需要在 Docker 客户端配置:
bash
sudo tee -a /etc/docker/daemon.json <<EOF
{
"insecure-registries": ["registry.example.com:80"]
}
EOF
sudo systemctl restart docker用户和权限管理
Harbor 支持精细化的 RBAC(基于角色的访问控制):
| 角色 | 权限 |
|---|---|
| 访客(Guest) | 只读:拉取镜像 |
| 开发者(Developer) | 读写:拉取/推送镜像 |
| 维护人(Maintainer) | 读写+管理:包括删除、配置标记 |
| 项目管理员(Project Admin) | 项目完全控制 |
| 系统管理员(Admin) | 系统全局权限 |
bash
# 通过 API 创建用户
curl -X POST \
-H "Content-Type: application/json" \
-u admin:Harbor12345 \
"http://registry.example.com/api/v2.0/users" \
-d '{
"username": "developer1",
"password": "Developer@123",
"email": "dev1@example.com",
"realname": "Developer One"
}'镜像复制
Harbor 支持在不同仓库间自动同步镜像:
- 进入 管理 → 仓库管理 → 新建目标
- 填写目标仓库(Docker Hub / 另一个 Harbor / S3 等)
- 进入 复制管理 → 新建规则
- 配置触发条件(手动/定时/事件触发)
升级 Harbor
bash
# 1. 备份数据
cd /harbor
docker compose down
cp -r /data /data.bak
# 2. 下载新版本安装包并解压
cd /opt
tar xzf harbor-online-installer-v2.xx.x.tgz
cd harbor
# 3. 复制旧配置
cp /old-harbor/harbor.yml .
# 根据新版本 harbor.yml.tmpl 更新配置项
# 4. 执行迁移
./prepare
# 5. 重新安装
./install.sh总结
Harbor 是企业级私有镜像仓库的首选:
- 安装简单:一键脚本安装
- 功能完整:权限控制、安全扫描、镜像复制
- Web UI:直观的操作界面
- API 完整:支持 CI/CD 集成
生产建议:
- 配置 HTTPS(使用 Let's Encrypt 或企业证书)
- 定期备份
/data目录 - 开启 Trivy 漏洞扫描
- 定期清理未使用的镜像