Docker 镜像仓库搭建:Harbor 部署、HTTPS 配置与镜像推拉权限管理
·
Docker 镜像仓库搭建:Harbor 部署、HTTPS 配置与权限管理
1. Harbor 部署
Harbor 是开源的企业级容器镜像仓库,支持安全认证、权限管理等核心功能。
部署步骤:
-
环境准备
- 安装 Docker 和 Docker Compose
- 分配服务器资源(建议 4GB+ 内存,100GB+ 存储)
- 开放端口:80(HTTP)、443(HTTPS)、4443(Harbor 管理端口)
-
安装 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 -
配置
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 # 存储路径 -
启动 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:
-
修改
harbor.yml:https: port: 443 certificate: /etc/harbor/ssl/server.crt # 证书路径 private_key: /etc/harbor/ssl/server.key # 私钥路径 -
重启服务:
docker-compose down -v ./install.sh --with-trivy --with-chartmuseum # 完整组件 -
客户端信任证书:
# 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 项目实现细粒度权限控制:
权限模型:
| 角色 | 权限说明 |
|---|---|
| 项目管理员 | 管理成员、配置扫描策略 |
| 维护者 | 读写镜像,无法管理成员 |
| 开发者 | 拉取和推送镜像 |
| 访客 | 仅拉取镜像 |
操作流程:
-
创建项目
- Web 控制台 → 项目 → 新建项目(如
prod-images) - 启用访问控制:
公开(所有人可拉取)或私有(需授权)
- Web 控制台 → 项目 → 新建项目(如
-
添加用户
- 用户管理 → 新建用户(支持 LDAP/AD 集成)
- 分配项目角色:选择项目 → 成员 → 添加用户
-
镜像推拉
# 登录仓库 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 | 核心配置(域名、证书、存储等) |
注意:生产环境建议:
- 使用可信 CA 证书(如 Let's Encrypt)
- 定期备份
/data目录- 启用漏洞扫描(Trivy)和内容信任(Notary)
更多推荐
所有评论(0)