一篇文章带你了解一款强大的本地镜像库系统---Harbor

一、Harbor本地镜像库特点

Harbor 是由 VMware 开源的企业级容器镜像仓库系统,基于 Docker Registry 扩展了以下核心功能:

  1. 企业级权限管理

    • 支持基于角色的访问控制(RBAC),可按项目分配用户权限(如 Guest、Developer、Admin 等),满足多团队协作需求。
    • 集成 LDAP/AD 身份认证,可对接企业现有用户体系。
  2. 镜像生命周期管理

    • 提供图形化界面管理镜像,支持删除无用镜像并回收存储空间。
    • 支持镜像复制功能,可同步镜像到远程 Harbor 实例,实现灾备或多地部署。
  3. 安全与审计

    • 记录所有操作的审计日志,满足合规性要求。
    • 支持镜像漏洞扫描(需集成 Clair 等工具),保障镜像安全性。
  4. 扩展性与集成

    • 提供 RESTful API,便于与 CI/CD 工具(如 Jenkins、GitLab)集成。
    • 支持 HTTPS 加密通信,保障数据传输安全。

二、Harbor 安装部署

1. 环境准备

  • 硬件要求:建议至少 2 核 CPU、4G 内存、40G 存储(如 PVE 虚拟机)。

  • 软件依赖

    • Docker 1.10+ 和 Docker Compose 1.6+。
    • 配置 Docker 加速器(如阿里云)加速镜像下载。

2. 安装步骤

  • 在线安装

    ruby 复制代码
    # 下载安装包  
    wget https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-online-installer-v2.4.1.tgz   
    tar zxvf harbor-online-installer-v2.4.1.tgz   
    cd harbor  
    
    # 修改配置文件  
    vi harbor.yml   # 设置主机名、数据库密码等  
    
    # 执行安装  
    ./install.sh   
    ``` ```  
  • 离线安装

    下载离线包(如

    harbor-offline-installer-v2.4.1.tgz

    ),解压后按上述步骤配置并安装。

3. 配置 HTTPS(可选)

  • 生成 SSL 证书(如使用 Let's Encrypt)。

  • 修改

    harbor.yml

    https

    相关配置,重启服务。


bash 复制代码
内网虚拟机部署:
https://goharbor.io/docs/2.2.0/install-config/configure-https/
1.公司内网如果平时配置了docker的代理去dockerhub拉镜像的话,想要登陆成功私有仓库,需要移除/etc/systemd/system/docker.service.d目录下的http-proxy.conf和https-proxy.conf,否则内网的xx.xx.xx.xx:80在docker login的时候就到公网去找这个ip了,就会40x。
2./etc/docker/daemon.json增加一行如下:
{
    "registry-mirrors": [
                "https://c5577d9e1d5d49ba81ff33f7309cefa9.mirror.swr.myhuaweicloud.com",
                "https://docker.mirrors.sjtug.sjtu.edu.cn",
                "https://dockerproxy.com",
                "https://docker.m.daocloud.io",
                "https://docker.1ms.run",
                "https://hub2.nat.tf",
                "https://docker.1panel.dev",
                "https://docker.1panelproxy.com",
                "https://docker.cloudlayer.icu"
        ],
     "insecure-registries": [
                "http://192.168.6.128:8083"
        ]
}
systemctl daemon-reload
service docker restart
docker login -u admin -p admin123 192.168.6.128:8083
docker tag dpanel/dpanel:latest 192.168.6.128:8083/test/dpanel:latest
docker push 192.168.6.128:8083/test/dpanel:latest

三、Harbor 使用方法

1. Web 管理界面

  • 访问

    http(s)://<Harbor_IP>

    ,默认账号密码为

    admin/Harbor12345

  • 项目管理

    • 创建公开/私有项目,分配用户角色(如开发人员 Push/Pull 权限,测试人员仅 Pull 权限)。

2. 客户端操作

  • 推送镜像

    xml 复制代码
    # 登录 Harbor  
    docker login <Harbor_IP> -u <用户名> -p <密码>  
    
    # 标记本地镜像  
    docker tag <本地镜像名> <Harbor_IP>/<项目名>/<镜像名>:标签  
    
    # 推送镜像  
    docker push <Harbor_IP>/<项目名>/<镜像名>:标签  
    ``` ```  
  • 拉取镜像

    javascript 复制代码
    docker pull <Harbor_IP>/<项目名>/<镜像名>:标签  
    ``` ```  

3. 客户端配置(HTTP 模式)

  • 修改

    /etc/docker/daemon.json

    ,添加:

    go 复制代码
    {  
      "insecure-registries": ["<Harbor_IP>:端口"]  
    }  
    ``` ```  
  • 重启 Docker 服务:

    systemctl restart docker


四、总结

Harbor 通过权限管理、镜像复制、安全审计等功能,解决了企业级镜像仓库的痛点。部署时需注意网络配置和 HTTPS 设置,使用时需合理分配用户权限并配置客户端信任列表。更多细节可参考官方文档或上述引用的 CSDN 博客。

相关推荐
kyriewen8 小时前
微软用Go重写TypeScript编译器,速度提升10倍,网友:这是“背叛”还是“救赎”?
前端·typescript·ecmascript 6
Ceelog8 小时前
久坐党自救指南:屏幕前 8 小时,身体到底在经历什么
前端·后端
西陵8 小时前
Agent 为什么会陷入 Doom Loop?OpenClaw 的破解之道
前端·人工智能·ai编程
Hyyy9 小时前
普通前端续命周报——第2周
前端
wuxinyan1239 小时前
工业级大模型学习之路030:Streamlit 企业级智能体前端工作台
前端·学习·streamlit·智能体
修己xj9 小时前
告别无效刷屏!TrendRadar:最快30秒部署的开源热点助手,让你只看真正关心的新闻
前端
anOnion10 小时前
构建无障碍组件之Slider Pattern
前端·html·交互设计
云水一下10 小时前
JavaScript 从零基础到精通系列:前世今生与编程启蒙
前端·javascript
月亮邮递员61610 小时前
Markdown语法总结
开发语言·前端·javascript
Kurisu57510 小时前
雾锁王国修改器下载2026最新
前端·修改器代码