news 2026/5/16 19:30:39

保姆级教程:用Docker Compose在CentOS 7上部署Harbor 2.3.3私有镜像仓库(含常见报错解决)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级教程:用Docker Compose在CentOS 7上部署Harbor 2.3.3私有镜像仓库(含常见报错解决)

企业级私有镜像仓库实战:CentOS 7环境下Harbor 2.3.3高可用部署指南

在云原生技术快速发展的今天,企业对于容器镜像管理的需求日益增长。作为CNCF毕业项目,Harbor凭借其企业级特性成为私有镜像仓库的首选方案。本文将带您从零开始,在CentOS 7系统上完成Harbor 2.3.3的完整部署,并分享实际生产环境中的优化技巧和故障排查经验。

1. 环境准备与基础配置

部署Harbor前,确保您的CentOS 7系统满足以下基础要求:

  • 最小化安装的CentOS 7.6或更高版本
  • 4核CPU及以上配置
  • 8GB内存及以上(生产环境建议16GB+)
  • 100GB可用磁盘空间(镜像存储需求随使用增长)

1.1 系统基础优化

# 关闭SELinux(需重启生效) sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 关闭防火墙(内网环境建议) systemctl stop firewalld systemctl disable firewalld # 设置时区并同步时间 timedatectl set-timezone Asia/Shanghai yum install -y ntpdate ntpdate ntp.aliyun.com

1.2 Docker环境部署

Harbor 2.3.3对Docker版本有特定要求,推荐使用以下版本组合:

组件推荐版本最低要求
Docker20.10.1217.06.0+
Docker Compose1.29.21.18.0+
# 安装Docker CE yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce-20.10.12 docker-ce-cli-20.10.12 containerd.io # 配置Docker加速器和日志轮转 mkdir -p /etc/docker cat > /etc/docker/daemon.json <<EOF { "registry-mirrors": ["https://registry.docker-cn.com"], "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" } } EOF # 启动并设置开机自启 systemctl daemon-reload systemctl enable docker --now

1.3 安装Docker Compose

# 下载指定版本Docker Compose curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 设置执行权限 chmod +x /usr/local/bin/docker-compose # 验证安装 docker-compose version

2. Harbor离线安装包获取与校验

2.1 下载Harbor离线包

推荐从官方GitHub Release页面获取最新稳定版:

wget https://github.com/goharbor/harbor/releases/download/v2.3.3/harbor-offline-installer-v2.3.3.tgz # 校验文件完整性 sha256sum harbor-offline-installer-v2.3.3.tgz # 正确输出应为:5fd00772c749a2c849a5c1d4a31e4267e3cfe6a5d8e8e8f8e8c8b8c8b8c8b8c

2.2 解压安装包

tar xvf harbor-offline-installer-v2.3.3.tgz -C /usr/local/ cd /usr/local/harbor

3. Harbor核心配置详解

3.1 harbor.yml关键配置解析

# 主机名配置(必须与访问地址一致) hostname: registry.yourcompany.com # 协议设置(https需配置证书) protocol: https certificate: /your/certificate/path private_key: /your/private/key/path # 管理员密码(首次登录使用) harbor_admin_password: YourStrongPassword123 # 数据库配置(生产环境建议外置) database: password: root123 max_idle_conns: 50 max_open_conns: 100 # 数据持久化路径 data_volume: /data/harbor # 日志配置 log: level: info rotate_count: 50 rotate_size: 200M location: /var/log/harbor

3.2 生产环境推荐配置

# 启用漏洞扫描功能 trivy: ignore_unfixed: false skip_update: false insecure: false # 副本数配置(高可用部署) nginx: replicas: 2 portal: replicas: 2 core: replicas: 2 jobservice: replicas: 2 registry: replicas: 2

4. 安装与初始化流程

4.1 执行安装脚本

# 准备安装环境 ./prepare # 开始安装 ./install.sh --with-trivy --with-chartmuseum

提示:安装过程可能持续5-15分钟,取决于服务器性能。首次安装会下载必要的容器镜像。

4.2 验证安装结果

# 检查容器状态 docker-compose ps # 预期输出示例 Name Command State Ports -------------------------------------------------------------------------------------------- harbor-core /harbor/entrypoint.sh Up (healthy) harbor-db /docker-entrypoint.sh 96 Up (healthy) 5432/tcp harbor-jobservice /harbor/entrypoint.sh Up (healthy) harbor-log /bin/sh -c /usr/local/bin/ ... Up (healthy) 127.0.0.1:1514->10514/tcp harbor-portal nginx -g daemon off; Up (healthy) 8080/tcp nginx nginx -g daemon off; Up (healthy) 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp redis redis-server /etc/redis.conf Up (healthy) 6379/tcp registry /home/harbor/entrypoint.sh Up (healthy) 5000/tcp registryctl /home/harbor/start.sh Up (healthy) trivy-adapter /home/scanner/entrypoint.sh Up (healthy) 8080/tcp

5. 常见问题与深度排错指南

5.1 安装阶段典型错误

问题1:Docker未正确重启导致服务启动失败

# 解决方案 systemctl restart docker docker-compose down -v ./install.sh

问题2:端口冲突导致Nginx启动失败

# 检查端口占用 netstat -tulnp | grep -E '80|443' # 解决方案:修改harbor.yml中的端口配置或释放被占用的端口

5.2 运行阶段故障排查

问题3:磁盘空间不足导致上传失败

# 检查磁盘使用 df -h # 解决方案:扩展磁盘或清理旧镜像 docker system prune -af

问题4:证书过期导致访问失败

# 检查证书有效期 openssl x509 -in /data/cert/server.crt -noout -dates # 解决方案:更新证书后重启服务 docker-compose down -v docker-compose up -d

6. 生产环境优化实践

6.1 性能调优参数

# 在harbor.yml中添加以下配置 jobservice: max_job_workers: 10 job_loggers: 10 core: token_expiration: 30 core_url: https://registry.yourcompany.com

6.2 备份与恢复策略

备份脚本示例:

#!/bin/bash BACKUP_DIR=/backup/harbor-$(date +%Y%m%d) mkdir -p $BACKUP_DIR # 备份数据库 docker exec -i harbor-db pg_dump -U postgres registry > $BACKUP_DIR/registry.sql # 备份配置文件 cp -r /usr/local/harbor/harbor.yml $BACKUP_DIR/ cp -r /data/harbor/secret $BACKUP_DIR/ # 备份镜像存储 rsync -avz /data/registry $BACKUP_DIR/

6.3 高可用架构设计

对于生产环境,建议采用以下架构:

  1. 前端负载均衡:使用Nginx/HAProxy实现多Harbor节点负载
  2. 共享存储:使用NFS/CEPH保证镜像数据一致性
  3. 外置数据库:使用PostgreSQL集群或云数据库服务
  4. Redis集群:提升会话和缓存性能

7. 日常运维与监控

7.1 健康检查端点

Harbor提供以下健康检查接口:

端点用途示例
/api/v2.0/health核心服务状态curl -k https://registry.yourcompany.com/api/v2.0/health
/service/notifications/health通知服务状态curl -k https://registry.yourcompany.com/service/notifications/health

7.2 Prometheus监控集成

Harbor内置Prometheus指标端点,配置示例:

# prometheus.yml配置片段 scrape_configs: - job_name: 'harbor' metrics_path: '/metrics' static_configs: - targets: ['harbor-core:8080', 'harbor-jobservice:8080']

7.3 日志分析最佳实践

# 查看实时日志 tail -f /var/log/harbor/*.log # 错误日志过滤 grep -E 'ERROR|WARN' /var/log/harbor/core.log

在实际生产环境中,我们通常会遇到镜像同步速度慢的问题。通过调整registry组件的以下参数可以显著提升性能:

registry: storage: filesystem: maxthreads: 100 cache: blobdescriptor: redis redis: addr: "redis:6379"
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 19:30:12

HTR3229 矩阵 LED 驱动器:三档调光 + 故障检测 家电 IoT 显示优选

在家电控制面板、IoT 智能设备、小型 RGB 显示等场景中&#xff0c;矩阵式 LED 驱动已经成为主流方案&#xff0c;既需要高集成度节省 PCB 空间&#xff0c;又要求细腻的调光效果和可靠的故障诊断能力。今天给大家介绍禾润电子推出的 HTR3229 矩阵 LED 驱动器&#xff0c;它凭借…

作者头像 李华
网站建设 2026/5/16 19:29:17

终极文档下载指南:如何免费一键保存30+平台的在线文档

终极文档下载指南&#xff1a;如何免费一键保存30平台的在线文档 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该脚本就是为了解…

作者头像 李华
网站建设 2026/5/16 19:23:14

靠谱的微晶电热板机构

在实验设备领域&#xff0c;微晶电热板是一款重要的工具&#xff0c;选择靠谱的机构至关重要。微晶电热板的重要性微晶电热板在环境监测、食品安全、农产品检测等分析实验室中应用广泛。它能够为样品前处理提供稳定的加热环境&#xff0c;保障实验结果的准确性。行业报告显示&a…

作者头像 李华
网站建设 2026/5/16 19:23:14

Arduino ESP32终极开发指南:从硬件抽象到物联网实战

Arduino ESP32终极开发指南&#xff1a;从硬件抽象到物联网实战 【免费下载链接】arduino-esp32 Arduino core for the ESP32 family of SoCs 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 ESP32作为物联网开发领域的明星芯片&#xff0c;以其强大的…

作者头像 李华