一篇文章带你了解一款强大的本地镜像库系统---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 博客。

相关推荐
福兮说8 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
郑州光合科技余经理9 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
小呆呆66610 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
Dovis(誓平步青云)10 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
码艺-Alimjan11 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js
可乐鸡翅yeah_11 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
IT_陈寒11 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
广州华水科技11 小时前
大坝安全监测解决方案:单北斗GNSS形变监测系统应用与维护
前端
yivifu12 小时前
中文古籍电子书注释集成
前端·javascript·python·beautifulsoup·epub
默_笙13 小时前
🛴 从散件到整机:DeepAgents 与 Agent 身上预留的那些"插槽"(前置介绍)
前端·javascript