Harbor私有镜像仓库入门实战:从部署配置到镜像扫描与权限管理

举报
yd_248750836 发表于 2026/11/11 08:28:03 2026/11/11
【摘要】 Harbor私有镜像仓库入门实战:从部署配置到镜像扫描与权限管理 一、Harbor是什么Harbor 是 CNCF 毕业的云原生私有镜像仓库,比 Docker Registry 多做了企业最关心的几件事:能力说明项目隔离每个项目独立存放镜像、成员与权限RBAC 权限系统管理员、项目管理员、开发、访客、匿名五类角色镜像扫描对接 Trivy,自动检出 CVE 漏洞镜像签名基于 Notary /...

Harbor私有镜像仓库入门实战:从部署配置到镜像扫描与权限管理

一、Harbor是什么

Harbor 是 CNCF 毕业的云原生私有镜像仓库,比 Docker Registry 多做了企业最关心的几件事:

能力 说明
项目隔离 每个项目独立存放镜像、成员与权限
RBAC 权限 系统管理员、项目管理员、开发、访客、匿名五类角色
镜像扫描 对接 Trivy,自动检出 CVE 漏洞
镜像签名 基于 Notary / Cosign 保障供应链安全
保留策略 自动清理 tag,回收存储

团队从"一台机器跑 docker run"走向"K8s 多集群生产化"后,镜像从哪来、谁可以推、哪个版本有漏洞,必须由镜像仓库回答。

二、部署 Harbor

测试环境可用 Docker Compose,生产推荐 Helm。

tar zxf harbor-offline-installer-v2.10.0.tgz && cd harbor
vi harbor.yml          # 改 hostname、数据库与 admin 密码
./install.sh
hostname: harbor.example.com
harbor_db:
  password: Harbor@12345
harbor_admin_password: Harbor@12345

访问 http://harbor.example.com,用 admin / Harbor@12345 登录,上线前务必改掉默认密码。

生产要点:外部 PostgreSQL、Redis 集群、对象存储替代本地磁盘;必配 HTTPS 并设置 externalURL。

三、基本使用

对象模型是项目 → 仓库 → 制品 → 标签。新建项目 myapp 后,在「成员」页给开发人员分配开发角色(可推拉删),给只读用户分配访客。

推送镜像:

docker login harbor.example.com -u admin
docker tag myapp:1.0.0 harbor.example.com/myapp/myapp:1.0.0
docker push harbor.example.com/myapp/myapp:1.0.0

K8s 拉取私有镜像需要 Robot 账户(只读足够):

kubectl create secret docker-registry harbor-secret \
  --docker-server=harbor.example.com \
  --docker-username='robot$myapp-pull' \
  --docker-password='<token>'
spec:
  containers:
    - name: myapp
      image: harbor.example.com/myapp/myapp:1.0.0
      imagePullSecrets:
        - name: harbor-secret

四、镜像扫描与漏洞治理

Harbor 默认集成 Trivy,镜像推送后自动扫描,列表里直接显示 CVE 等级。

推荐开启阻断策略 Prevent images with severity >= Critical from being pushed,高危镜像直接进不了仓库,比事后人工复核有效得多。

五、常见坑

  1. 没改默认密码 → 上线前必改
  2. 客户端写错 registry → 拉私有镜像必须写完整域名,不能用 docker.io
  3. K8s 报 ImagePullBackOff → 九成是 secret 名字或命名空间不匹配
  4. 扫描任务不执行 → 检查 Trivy 服务与 harbor.yml 中的 trivy 配置
  5. 磁盘被 tag 撑满 → 配置保留策略自动清理

备份只需三件套:/etc/harbor 配置、数据库、registry 存储。

六、小结

Harbor 把镜像仓库从存储服务升级成了 DevSecOps 平台:权限、扫描、签名、清理一条龙。入门阶段重点掌握项目隔离、Robot 账户拉取、扫描阻断策略三点,基本能覆盖绝大多数团队的落地需求。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。