一、Harbor 日常使用从项目开始

在 Harbor 中,项目是管理镜像的核心边界。镜像上传、访问控制、成员协作和配额限制,几乎都围绕项目展开。

1.1 新建项目

创建项目的基本动作非常直接:

  1. 点击 新建项目
  2. 填写项目名称
  3. 选择项目配额和访问级别

界面示意:

新建项目入口

定义项目名称

其中有两个很值得注意的点:

  • 项目配额为 -1 通常表示不限制
  • 访问级别分为公开和私有,私有项目更适合企业内协作

二、如何上传和下载 Harbor 镜像

2.1 上传镜像到 Harbor

上传前,客户端需要先登录 Harbor:

docker login -uadmin -p<your-password> http://10.0.0.13

然后把本地镜像重新打 tag:

docker tag registry.cn-hangzhou.aliyuncs.com/zq-demo/nginx:1.21.6 \
  10.0.0.13/project001/nginx:1.21.6

再执行推送:

docker push 10.0.0.13/project001/nginx:1.21.6

推送成功后,可以在 Harbor 项目页面中验证:

上传镜像后页面验证

另外,项目内的“推送命令”入口通常也能直接生成对应命令:

查看推送命令

2.2 从 Harbor 下载镜像

拉取镜像也很直接:

docker pull 10.0.0.13/project001/nginx:1.21.6

镜像被成功拉取后,Harbor 页面里通常能看到下载次数变化:

拉取次数验证

三、用户和成员管理为什么很重要

Harbor 适合企业场景,一个重要原因就在于它的用户和项目成员管理能力。

3.1 创建用户

操作路径通常是:

  • 系统管理
  • 用户管理
  • 填写信息并确认创建

创建 Harbor 用户

3.2 给项目添加成员

为项目添加成员的典型流程是:

  1. 进入目标项目
  2. 打开 成员
  3. 点击 +用户
  4. 选择具体用户并授予角色

相关界面:

进入项目成员管理

添加项目成员

分配项目角色

原始笔记中给出的经验很实用:

  • 运维角色一般可赋予维护人员
  • 开发角色一般可赋予开发者

四、为什么要给 Harbor 配保留策略和清理服务

仓库如果长期不治理,最容易出现的问题就是:

  • 镜像堆积太多
  • 历史产物长期不清理
  • 磁盘空间越来越紧张
  • 日志持续膨胀

因此 Harbor 的策略和清理服务非常关键。

4.1 项目策略

Harbor 支持为项目设置保留规则,例如:

  • 仅保留最近推送的若干个 artifacts
  • 按 Tag 匹配规则进行保留
  • 配合定时执行周期自动清理

原始示例里提到一个重要原则:多个策略之间是“或”的关系,满足其中之一即可保留

相关界面:

进入项目策略

配置保留规则

设置定时执行

4.2 垃圾清理与日志轮替

垃圾清理通常用于回收不再引用的镜像数据,日志轮替则用于控制日志文件体积。

原始示例里给出了每周六凌晨 1 点执行的思路:

0 0 1 * * 6

界面示意:

垃圾清理配置

日志轮替配置

五、项目配额怎么理解更合适

项目配额是 Harbor 里非常重要的资源治理能力。

5.1 修改默认项目配额

默认项目配额通常只对新建项目生效:

修改默认项目配额

设置默认配额

5.2 修改已有项目配额

已经存在的旧项目,需要单独修改:

选择旧项目修改配额

设置项目容量

这个能力特别适合多团队共用 Harbor 的场景,能避免单个项目无限制占用仓库空间。

六、复制管理为什么是 Harbor 的高级能力

Harbor 除了本地存储镜像,还支持与外部仓库做镜像复制。这对混合云、跨仓库同步和镜像分发来说非常重要。

6.1 先配置目标仓库

在复制管理前,通常要先新建目标仓库,例如 ACR:

新建复制目标

配置复制目标

这里有一个非常重要的安全提醒:实际环境中不要在文档和截图里暴露真实 AccessKey ID 和 Secret,应该使用专用最小权限凭证,并妥善保管。

6.2 创建拉取型和推送型复制规则

Harbor 可以配置:

  • Pull-based:把外部镜像同步到本地
  • Push-based:把本地镜像同步到目标仓库

相关界面:

新建复制规则

Pull-based 规则

执行复制任务

Push-based 规则

复制成功结果

七、删除项目之前为什么常常要先清成员

Harbor 删除项目时,并不总是一步完成。原始示例里就提到,删除前通常需要先处理项目成员等关联对象。

相关界面:

删除项目入口

删除项目确认

这也说明 Harbor 不只是镜像仓库,它更像一套完整的仓库管理平台。

八、把 Harbor 从“能用”推进到“好用”

如果把 Day005 后半部分浓缩成一个落地思路,可以概括为:

  • 先建项目
  • 再完成镜像上传下载闭环
  • 然后补用户和成员协作
  • 再配置保留策略、清理服务和配额
  • 最后根据需要接入复制管理

做到这一步,Harbor 就不再只是一个放镜像的地方,而是开始真正承担企业级镜像资产管理平台的职责。