Harbor 私有镜像仓库

Harbor 私有镜像仓库

1 简介

Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution 的功能。作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全性。

2 安装

2.1 系统要求

硬件要求

资源 最低配置 推荐配置
CPU 2 CPU 4 CPU
内存 4 GB 8 GB
磁盘 40 GB 160 GB

软件要求

软件 版本要求 说明
Docker Engine 20.10.10-ce 或更高版本 用于运行 Harbor 容器
Docker Compose v1.18.0+ 或 docker compose v2 用于编排 Harbor 服务
OpenSSL 最新版本 用于生成证书和密钥

网络端口

端口 协议 说明
443 HTTPS Harbor 门户和核心 API 的 HTTPS 端口
4443 HTTPS Docker Content Trust 服务端口
80 HTTP Harbor 门户和核心 API 的 HTTP 端口

2.2 下载安装包

  1. 访问 Harbor 发布页面 下载安装包

  2. 有在线安装包(harbor-online-installer)和离线安装包(harbor-offline-installer),这里选择离线安装包,比较方便。

  3. 下载离线安装包:

    1
    wget https://github.com/goharbor/harbor/releases/download/v2.12.2/harbor-offline-installer-v2.12.2.tgz
  4. 解压安装包:

    1
    tar xzvf harbor-offline-installer-v2.12.2.tgz

2.3 配置 Harbor

  1. 进入解压后的目录:

    1
    cd harbor
  2. 复制配置文件模板:

    1
    cp harbor.yml.tmpl harbor.yml
  3. 生成 SSL 证书(如果使用 HTTPS):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 创建证书目录
    mkdir -p certs

    # 生成私钥
    openssl genrsa -out certs/harbor.key 4096

    # 生成证书签名请求(CSR)
    openssl req -new -key certs/harbor.key -out certs/harbor.csr -subj "/C=CN/ST=State/L=City/O=Organization/CN=harbor.example.com"

    # 生成自签名证书(有效期 365 天)
    openssl x509 -req -days 365 -in certs/harbor.csr -signkey certs/harbor.key -out certs/harbor.crt
  4. 修改 harbor.yml 配置文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    hostname: harbor.example.com  # 修改为你的域名

    http:
    port: 80
    https:
    port: 443
    certificate: ./certs/harbor.crt # 证书路径
    private_key: ./certs/harbor.key # 密钥路径

    harbor_admin_password: Harbor12345 # 修改为你的管理员密码

⚠️ 注意:

  1. 如果是生产环境,建议使用正式的 SSL 证书,可以使用 Let’s Encrypt 等免费证书
  2. 使用自签名证书时,需要在客户端配置信任该证书
  3. 如果使用 Let’s Encrypt 证书,可以使用 certbot 工具获取证书:
    1
    2
    3
    4
    5
    # 安装 certbot
    apt-get install certbot python3-certbot-nginx

    # 获取证书
    certbot certonly --standalone -d harbor.example.com

2.4 安装 Harbor

  1. 运行安装脚本:
    1
    bash install.sh

⚠️ 这里启动的服务可能和你本地的数据库服务冲突,可以先停止本地的服务,或者修改配置,直接引入已有的服务。

  1. 验证安装:
    1
    docker-compose ps

3 使用 Harbor

3.1 Shell 中使用

  1. 登录 Harbor:

    1
    2
    3
    4
    docker login harbor.example.com
    # 输入用户名和密码
    Username: admin
    Password: Harbor12345
  2. 推送镜像:

    1
    2
    3
    4
    5
    # 标记镜像
    docker tag nginx:latest harbor.example.com/library/nginx:latest

    # 推送镜像
    docker push harbor.example.com/library/nginx:latest

⚠️ 如果 push 时,出现 unknown blob 错误,需要在 common/config/registry/config.yml 中配置 http: 下面的 relativeurlstrue

  1. 拉取镜像:
    1
    docker pull harbor.example.com/library/nginx:latest

3.2 浏览器中使用

  1. 访问 Harbor 门户:

    1
    http://harbor.example.com
  2. 登录 Harbor,输入用户名和密码:

    1
    2
    Username: admin
    Password: Harbor12345
  3. 点击新建 dockerhub 项目,把一些 docker hub 上的镜像导入到 Harbor 中:

    1
    2
    3
    docker pull nginx:latest
    docker tag nginx:latest harbor.example.com/dockerhub/nginx:latest
    docker push harbor.example.com/dockerhub/nginx:latest

    这样就方便在网络隔离的环境中,使用 Harbor 作为私有镜像仓库。

4 管理功能

Harbor 提供了丰富的管理功能,包括用户管理、项目管理、镜像管理等。

4.1 用户管理

  • 用户创建和认证:支持本地用户创建、LDAP/AD集成和OIDC认证
  • 角色分配:系统管理员、项目管理员、开发者和访客等多种预定义角色
  • 权限管理:支持项目访问权限设置、私有项目和公开项目、项目配额限制

4.2 项目管理

  • 项目类型:私有项目和公开项目
  • 访问控制:项目访问级别设置、项目级别用户权限管理、项目配额配置
  • 项目配额:存储空间限制、镜像数量限制、配额预警通知

4.3 镜像管理

  • 镜像复制:跨项目、跨实例复制,定时复制策略和失败重试机制
  • 镜像清理:基于标签、时间和数量的清理,清理策略设置
  • 漏洞扫描:多种扫描器支持,定时扫描、扫描结果通知和漏洞级别阈值设置

这些功能让 Harbor 成为一个企业级的镜像管理平台。

5 参考

作者

Ailln

发布于

2025-03-31

更新于

2025-03-31

许可协议

评论