Docker 镜像仓库搭建:Harbor 部署、HTTPS 配置与权限管理

1. Harbor 部署

Harbor 是开源的企业级容器镜像仓库,支持安全认证、权限管理等核心功能。

部署步骤:

  1. 环境准备

    • 安装 Docker 和 Docker Compose
    • 分配服务器资源(建议 4GB+ 内存,100GB+ 存储)
    • 开放端口:80(HTTP)、443(HTTPS)、4443(Harbor 管理端口)
  2. 安装 Harbor

    # 下载离线安装包(以 v2.7.0 为例)
    wget https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-offline-installer-v2.7.0.tgz
    tar xvf harbor-offline-installer-v2.7.0.tgz
    cd harbor
    
    # 复制配置文件模板
    cp harbor.yml.tmpl harbor.yml
    

  3. 配置 harbor.yml

    # 基础配置
    hostname: harbor.yourdomain.com  # 域名或IP
    http:
      port: 80
    https:  # 暂不启用,后续配置
      port: 443
      certificate: /your/cert/path.crt
      private_key: /your/key/path.key
    data_volume: /data  # 存储路径
    

  4. 启动 Harbor

    ./install.sh  # 自动安装并启动服务
    

    • 验证:访问 http://<your-ip>,默认管理员账户 admin/Harbor12345

2. HTTPS 配置

启用 HTTPS 保障传输安全(以自签名证书为例):

证书生成:

# 生成私钥
openssl genrsa -out ca.key 4096

# 生成CA证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
  -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.yourdomain.com" \
  -key ca.key \
  -out ca.crt

# 生成服务端证书
openssl req -new -sha512 -newkey rsa:4096 \
  -subj "/CN=harbor.yourdomain.com" \
  -keyout server.key \
  -out server.csr

配置 Harbor:

  1. 修改 harbor.yml

    https:
      port: 443
      certificate: /etc/harbor/ssl/server.crt  # 证书路径
      private_key: /etc/harbor/ssl/server.key  # 私钥路径
    

  2. 重启服务:

    docker-compose down -v
    ./install.sh --with-trivy --with-chartmuseum  # 完整组件
    

  3. 客户端信任证书:

    # Linux/Mac
    sudo cp ca.crt /usr/local/share/ca-certificates/
    sudo update-ca-certificates
    
    # Docker 配置
    sudo mkdir -p /etc/docker/certs.d/harbor.yourdomain.com
    sudo cp ca.crt /etc/docker/certs.d/harbor.yourdomain.com/ca.crt
    


3. 镜像推拉权限管理

通过 Harbor 项目实现细粒度权限控制:

权限模型:

角色权限说明
项目管理员管理成员、配置扫描策略
维护者读写镜像,无法管理成员
开发者拉取和推送镜像
访客仅拉取镜像

操作流程:

  1. 创建项目

    • Web 控制台 → 项目 → 新建项目(如 prod-images
    • 启用访问控制:公开(所有人可拉取)或 私有(需授权)
  2. 添加用户

    • 用户管理 → 新建用户(支持 LDAP/AD 集成)
    • 分配项目角色:选择项目 → 成员 → 添加用户
  3. 镜像推拉

    # 登录仓库
    docker login harbor.yourdomain.com
    
    # 推送镜像(需开发者以上权限)
    docker tag nginx:latest harbor.yourdomain.com/prod-images/nginx:v1
    docker push harbor.yourdomain.com/prod-images/nginx:v1
    
    # 拉取镜像(需访客以上权限)
    docker pull harbor.yourdomain.com/prod-images/nginx:v1
    


关键配置文件说明

文件路径作用
/data镜像存储目录
/var/log/harbor日志文件
harbor.yml核心配置(域名、证书、存储等)

注意:生产环境建议:

  1. 使用可信 CA 证书(如 Let's Encrypt)
  2. 定期备份 /data 目录
  3. 启用漏洞扫描(Trivy)和内容信任(Notary)

更多推荐