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

相关推荐
zhougl9962 小时前
html处理Base文件流
linux·前端·html
花花鱼2 小时前
node-modules-inspector 可视化node_modules
前端·javascript·vue.js
HBR666_2 小时前
marked库(高效将 Markdown 转换为 HTML 的利器)
前端·markdown
careybobo3 小时前
海康摄像头通过Web插件进行预览播放和控制
前端
杉之5 小时前
常见前端GET请求以及对应的Spring后端接收接口写法
java·前端·后端·spring·vue
喝拿铁写前端5 小时前
字段聚类,到底有什么用?——从系统混乱到结构认知的第一步
前端
再学一点就睡5 小时前
大文件上传之切片上传以及开发全流程之前端篇
前端·javascript
木木黄木木6 小时前
html5炫酷图片悬停效果实现详解
前端·html·html5
请来次降维打击!!!7 小时前
优选算法系列(5.位运算)
java·前端·c++·算法
難釋懷7 小时前
JavaScript基础-移动端常见特效
开发语言·前端·javascript