华为欧拉系统(openEuler)上,手把手教你用Docker Compose部署Harbor 1.10.2镜像仓库
2026/6/7 3:01:59 网站建设 项目流程

在openEuler系统上部署Harbor镜像仓库的完整实践指南

近年来,随着国产化替代进程的加速,越来越多的企业开始将业务系统迁移到国产操作系统和硬件平台上。作为国内领先的企业级Linux发行版,华为openEuler系统凭借其优异的性能和稳定性,正在成为众多关键业务场景的首选平台。与此同时,容器化技术的普及也让Harbor这样的企业级镜像仓库解决方案变得愈发重要。

本文将详细介绍如何在openEuler系统上部署Harbor 1.10.2版本镜像仓库。与常见的x86架构不同,我们将重点关注ARM64(aarch64)架构下的部署细节,包括环境准备、依赖安装、配置调整以及常见问题的解决方案。无论您是初次接触Harbor的开发者,还是需要在国产化环境中实施容器化方案的运维工程师,都能从本文中找到实用的操作指南。

1. 环境准备与前置条件

在开始部署Harbor之前,我们需要确保openEuler系统满足所有必要的运行条件。与常见的CentOS或Ubuntu系统相比,openEuler在软件包管理和系统配置上有一些独特之处,需要特别注意。

1.1 系统要求检查

首先确认您的openEuler系统版本和架构信息:

cat /etc/openEuler-release uname -m

输出应显示类似以下内容:

openEuler release 22.03 LTS aarch64

Harbor对系统资源有一定要求,建议配置:

  • CPU:至少4核(推荐8核)
  • 内存:至少8GB(推荐16GB)
  • 磁盘空间:至少40GB(用于存储镜像)
  • 网络:稳定的网络连接

1.2 安装必要依赖

openEuler使用dnf作为包管理器,安装基础依赖包:

sudo dnf install -y curl wget tar git make gcc

由于Harbor需要Docker和Docker Compose支持,我们需要先安装它们。openEuler官方源中已经包含了这些软件包:

sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

安装完成后,启动Docker服务并设置开机自启:

sudo systemctl enable --now docker

验证Docker和Docker Compose版本:

docker --version docker compose version

建议使用以下版本或更高:

  • Docker: 20.10.0+
  • Docker Compose: 2.0.0+

2. 获取Harbor安装包与ARM64镜像

由于官方Harbor镜像默认不支持ARM架构,我们需要使用专门为ARM64编译的镜像版本。以下是几种获取方式:

2.1 下载ARM64适配的Harbor安装包

推荐从可靠的镜像源下载已经包含ARM64镜像的离线安装包:

wget https://example.com/harbor-arm64-offline-v1.10.2.tgz

注意:实际URL可能因镜像源不同而变化,建议从可信来源获取。

2.2 手动拉取ARM64镜像

如果您选择在线安装方式,可以使用以下脚本拉取适配ARM64架构的Harbor组件镜像:

#!/bin/bash version='v1.10.2' repository='registry.example.com/arm64-mirror' images=( "harbor-core" "harbor-db" "harbor-jobservice" "harbor-log" "nginx-photon" "harbor-portal" "prepare" "redis-photon" "registry-photon" "harbor-registryctl" ) for image in "${images[@]}"; do docker pull "${repository}/goharbor-${image}:${version}" docker tag "${repository}/goharbor-${image}:${version}" "goharbor/${image}:${version}" docker rmi "${repository}/goharbor-${image}:${version}" done

2.3 解压安装包

无论采用哪种方式获取安装包,解压方法相同:

tar xzvf harbor-arm64-offline-v1.10.2.tgz -C /opt cd /opt/harbor

3. 配置Harbor

Harbor的配置主要通过harbor.yml文件完成。在openEuler系统上,有几个关键配置需要特别注意。

3.1 基础配置

编辑harbor.yml文件:

hostname: your.domain.com # 或使用IP地址 http: port: 8080 data_volume: /data/harbor database: password: strong_password harbor_admin_password: Harbor12345

3.2 openEuler特有配置

针对openEuler系统,需要调整以下参数:

# 禁用HTTPS(如需启用请参考后续章节) https: enabled: false # 调整日志配置 log: level: info rotate_count: 50 rotate_size: 200M location: /var/log/harbor

3.3 存储配置

openEuler默认使用xfs文件系统,建议为Harbor配置单独的分区:

sudo mkdir -p /data/harbor sudo chown -R 10000:10000 /data/harbor

在harbor.yml中确认存储路径:

data_volume: /data/harbor

4. 安装与启动Harbor

完成配置后,可以开始安装Harbor。

4.1 执行安装脚本

sudo ./install.sh

安装过程会执行以下操作:

  1. 加载Docker镜像
  2. 准备环境配置
  3. 启动各个服务组件

4.2 验证服务状态

安装完成后,检查容器运行状态:

docker compose ls docker ps

正常情况下,应该看到10个Harbor相关容器正在运行。

4.3 防火墙配置

如果openEuler启用了防火墙,需要开放相应端口:

sudo firewall-cmd --add-port=8080/tcp --permanent sudo firewall-cmd --reload

5. 常见问题与解决方案

在openEuler系统上部署Harbor可能会遇到一些特殊问题,以下是常见问题的解决方法。

5.1 容器启动失败

如果某些容器无法启动,首先检查日志:

docker logs <container_name>

常见原因及解决方法:

  1. 权限问题

    sudo chown -R 10000:10000 /data/harbor
  2. 数据库连接失败: 检查PostgreSQL配置:

    docker exec -it harbor-db bash psql -U postgres

5.2 SELinux相关问题

openEuler默认启用SELinux,可能导致权限问题。临时解决方案:

sudo setenforce 0

永久解决方案是配置正确的SELinux策略或添加适当的上下文:

sudo semanage fcontext -a -t container_file_t "/data/harbor(/.*)?" sudo restorecon -Rv /data/harbor

5.3 性能优化建议

针对ARM64架构,可以调整以下参数提升性能:

  1. 修改PostgreSQL配置(/data/harbor/database/postgresql.conf):

    shared_buffers = 1GB effective_cache_size = 3GB
  2. 调整Redis配置:

    docker exec -it harbor-redis redis-cli config set maxmemory 1gb

6. 高级配置与维护

Harbor部署完成后,还需要进行一些必要的维护和高级配置。

6.1 启用HTTPS

虽然测试环境可以使用HTTP,但生产环境强烈建议启用HTTPS。

  1. 准备证书文件(假设为harbor.crt和harbor.key)
  2. 修改harbor.yml:
    https: port: 443 certificate: /your/certificate/path/harbor.crt private_key: /your/certificate/path/harbor.key
  3. 重新部署:
    sudo ./install.sh --with-notary --with-trivy

6.2 备份与恢复

定期备份Harbor数据至关重要。备份应包括:

  • 数据库数据(/data/harbor/database)
  • 配置文件(/opt/harbor/harbor.yml)
  • 镜像存储(/data/harbor/registry)

可以使用以下命令创建备份:

tar czvf harbor-backup-$(date +%Y%m%d).tgz /data/harbor /opt/harbor/harbor.yml

6.3 版本升级

升级Harbor版本时,建议遵循以下步骤:

  1. 备份当前数据
  2. 下载新版本安装包
  3. 停止当前服务:
    docker compose down -v
  4. 迁移配置并安装新版本
  5. 启动新服务

7. 实际应用与集成

Harbor部署完成后,可以将其集成到您的CI/CD流程中。

7.1 配置Docker客户端

在需要使用Harbor的机器上配置Docker:

sudo mkdir -p /etc/docker/certs.d/your.domain.com sudo scp your.domain.com:/path/to/ca.crt /etc/docker/certs.d/your.domain.com/ sudo systemctl restart docker

7.2 在Kubernetes中使用Harbor

如果您使用Kubernetes,可以配置集群使用Harbor作为私有镜像仓库:

  1. 创建secret:

    kubectl create secret docker-registry harbor-secret \ --docker-server=your.domain.com \ --docker-username=admin \ --docker-password=Harbor12345
  2. 在Pod定义中引用:

    imagePullSecrets: - name: harbor-secret

7.3 监控与日志管理

建议配置Harbor的监控和日志收集:

  1. 启用Prometheus监控:

    # 在harbor.yml中添加 metrics: enabled: true port: 9090
  2. 配置日志轮转:

    sudo vi /etc/logrotate.d/harbor

    添加内容:

    /var/log/harbor/*.log { daily rotate 30 missingok compress delaycompress notifempty }

在openEuler系统上成功部署Harbor后,您将拥有一个功能完善的企业级镜像仓库,能够满足国产化环境下的容器镜像管理需求。实际使用中,建议定期检查系统资源使用情况,并根据业务增长适时扩展存储容量。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询