Docker搭建Harbor私有镜像仓库全攻略(命令行模式)

一、引言:为何选择Harbor作为私有镜像仓库?

在容器化部署日益普及的今天,镜像管理成为DevOps流程中的关键环节。Harbor作为由VMware开源的企业级Registry服务器,提供了基于角色的访问控制、镜像复制、漏洞扫描等高级功能,尤其适合需要安全、高效管理私有镜像的企业环境。相较于直接使用Docker Registry,Harbor通过Web界面和REST API提供了更友好的操作方式,而本文聚焦的命令行模式安装,则能满足自动化部署、无图形化环境等场景需求。

二、环境准备:前置条件与资源规划

1. 硬件与系统要求

  • 服务器配置:建议至少2核4GB内存(测试环境可降低至1核2GB)
  • 操作系统:CentOS 7/8、Ubuntu 18.04/20.04等主流Linux发行版
  • 磁盘空间:根据镜像存储需求规划,建议单独分区
  • 网络要求:开放443(HTTPS)、80(HTTP,可选)、22(SSH)端口

2. Docker与Docker Compose安装

Harbor依赖Docker运行,需提前安装:

  1. # CentOS示例
  2. sudo yum install -y yum-utils
  3. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  4. sudo yum install docker-ce docker-ce-cli containerd.io
  5. sudo systemctl enable --now docker
  6. # Ubuntu示例
  7. sudo apt update
  8. sudo apt install -y docker-ce docker-ce-cli containerd.io
  9. sudo systemctl enable --now docker

验证安装:

  1. docker --version
  2. # 应输出类似:Docker version 20.10.17, build 100c701

3. 下载Harbor安装包

从官方GitHub Release页面获取最新版本(以v2.5.3为例):

  1. wget https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-offline-installer-v2.5.3.tgz
  2. tar xzf harbor-offline-installer-v2.5.3.tgz
  3. cd harbor

三、命令行模式安装Harbor:分步详解

1. 配置Harbor核心参数

编辑harbor.yml文件(原harbor.yml.tmpl需重命名):

  1. cp harbor.yml.tmpl harbor.yml
  2. vi harbor.yml

关键配置项说明:

  1. hostname: reg.example.com # 替换为实际域名或IP
  2. http:
  3. port: 80
  4. https:
  5. certificate: /data/cert/server.crt # HTTPS证书路径
  6. private_key: /data/cert/server.key
  7. harbor_admin_password: Harbor12345 # 初始管理员密码
  8. database:
  9. password: root123 # 数据库密码
  10. storage_driver:
  11. name: filesystem # 存储驱动类型
  12. options:
  13. rootdirectory: /data

注意事项

  • 生产环境必须配置HTTPS,可使用Let’s Encrypt免费证书
  • 密码需满足复杂度要求(建议包含大小写字母、数字、特殊字符)
  • 存储目录需确保Docker进程有读写权限

2. 执行安装脚本

  1. sudo ./install.sh --with-trivy --with-chartmuseum

参数说明:

  • --with-trivy:启用漏洞扫描功能
  • --with-chartmuseum:支持Helm Chart存储

安装过程输出示例:

  1. [Step 0]: checking installation environment ...
  2. [Step 1]: loading Harbor images ...
  3. [Step 2]: preparing environment ...
  4. [Step 3]: preparing configuration ...
  5. [Step 4]: starting Harbor ...
  6. ----Harbor has been installed and started successfully.----

3. 验证服务状态

  1. docker-compose ps
  2. # 应显示所有服务状态为"Up"

检查端口监听:

  1. netstat -tulnp | grep LISTEN
  2. # 应看到80/443端口被占用

四、基础使用:命令行操作指南

1. 登录Harbor仓库

  1. docker login reg.example.com
  2. # 输入用户名admin和配置的密码

2. 推送镜像到Harbor

  1. # 标记本地镜像
  2. docker tag nginx:latest reg.example.com/library/nginx:v1
  3. # 推送镜像
  4. docker push reg.example.com/library/nginx:v1

3. 从Harbor拉取镜像

  1. docker pull reg.example.com/library/nginx:v1

4. 项目管理命令行操作

通过Harbor API进行项目管理(需安装curljq):

  1. # 创建项目
  2. curl -u "admin:Harbor12345" -X POST -H "Content-Type: application/json" \
  3. -d '{"project_name": "devops", "public": false}' \
  4. "https://reg.example.com/api/v2.0/projects"
  5. # 列出项目
  6. curl -u "admin:Harbor12345" "https://reg.example.com/api/v2.0/projects" | jq .

五、高级配置与维护

1. 配置镜像复制

编辑harbor.yml添加复制规则:

  1. replication:
  2. - name: "aliyun-mirror"
  3. disabled: false
  4. src_registry:
  5. url: "https://reg.example.com"
  6. insecure: false
  7. dest_registry:
  8. url: "https://registry.cn-hangzhou.aliyuncs.com"
  9. insecure: false
  10. dest_namespace: "my-project"
  11. trigger:
  12. type: "manual"
  13. filters:
  14. tag_filter:
  15. pattern: "latest"

重启Harbor生效:

  1. cd /path/to/harbor
  2. docker-compose down
  3. docker-compose up -d

2. 日志管理与故障排查

关键日志位置:

  • common/config/log/: Harbor核心服务日志
  • /var/log/harbor/: 系统级日志
  • docker-compose logs <service-name>: 查看特定服务日志

常见问题解决方案:

  1. 502 Bad Gateway:检查Nginx配置和后端服务状态
  2. 数据库连接失败:验证harbor.yml中的数据库密码
  3. 存储空间不足:扩展磁盘或配置对象存储

3. 备份与恢复策略

备份数据目录:

  1. tar czf harbor-backup-$(date +%Y%m%d).tar.gz /data

恢复步骤:

  1. 停止Harbor服务
  2. 恢复备份文件到/data目录
  3. 重启服务

六、性能优化建议

  1. 资源限制:通过docker-compose.yml为各服务设置CPU/内存限制
  2. 缓存配置:启用Redis缓存加速频繁访问的镜像元数据
  3. 存储优化:使用对象存储(如MinIO、AWS S3)替代本地文件系统
  4. 负载均衡:多节点部署时配置Nginx或HAProxy实现高可用

七、总结与展望

通过本文的命令行模式安装指南,开发者可以快速构建企业级私有镜像仓库。Harbor的强大功能包括:

  • 细粒度的权限控制(RBAC)
  • 自动化的漏洞扫描(Trivy集成)
  • 多架构镜像支持
  • 与CI/CD工具链深度集成

未来可探索的方向包括:

  • Harbor与Kubernetes Operator的集成
  • 基于AI的镜像推荐系统
  • 跨云环境的镜像同步方案

建议读者定期关注Harbor官方文档,掌握最新版本特性(如v2.6新增的Webhook 2.0功能),持续优化镜像管理流程。