华为欧拉系统上,手把手教你用Docker-compose搞定Harbor私有镜像仓库(ARM64版)
2026/6/7 14:22:23 网站建设 项目流程

华为欧拉系统实战:Docker-compose部署ARM64版Harbor私有镜像仓库

在国产化技术生态快速发展的今天,华为欧拉操作系统作为国产服务器领域的重要力量,正逐渐成为企业级应用的新选择。对于使用ARM64架构的团队而言,如何在欧拉系统上高效部署Harbor私有镜像仓库,成为构建自主可控CI/CD流水线的关键一步。本文将带您从零开始,完成这一技术落地的全过程。

1. 环境准备与前置条件

华为欧拉系统作为面向数字基础设施的开源操作系统,其稳定性和安全性已得到广泛验证。在开始部署前,我们需要确保基础环境符合Harbor的运行要求。

系统要求

  • 华为欧拉操作系统(推荐OpenEuler 20.03 LTS SP2及以上版本)
  • ARM64(aarch64)架构服务器
  • 最小4核CPU/8GB内存/100GB存储空间(生产环境建议翻倍)

首先更新系统并安装必要工具:

sudo yum update -y sudo yum install -y curl wget git vim

Docker环境配置: 欧拉系统官方源已提供适配ARM64的Docker版本,安装命令如下:

sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker

验证Docker版本及架构:

docker version --format '{{.Server.Architecture}}'

注意:输出应为aarch64,确认ARM架构支持

Docker-compose安装: 由于欧拉系统的软件源可能不包含最新版docker-compose,推荐通过二进制方式安装:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose

2. Harbor ARM64镜像获取与验证

官方Harbor镜像默认不支持ARM架构,我们需要特别处理镜像获取问题。目前有三种可行方案:

方案优点缺点适用场景
使用预编译镜像开箱即用版本可能滞后快速部署
自行编译版本可控耗时且复杂定制需求
第三方仓库更新及时信任度需评估折中选择

推荐使用预编译镜像: 阿里云镜像仓库提供了ARM64架构的Harbor镜像,可通过以下脚本批量拉取:

#!/bin/bash VERSION="v2.7.4" REPO="registry.cn-hangzhou.aliyuncs.com/harbor-arm64" 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 $REPO/$image:$VERSION docker tag $REPO/$image:$VERSION goharbor/$image:$VERSION done

验证镜像架构:

docker inspect goharbor/harbor-core --format '{{.Architecture}}'

正常应显示arm64aarch64

3. Harbor配置与部署实战

获取Harbor安装包(适配ARM64版本):

wget https://github.com/goharbor/harbor/releases/download/v2.7.4/harbor-offline-installer-v2.7.4.tgz tar xzvf harbor-offline-installer-v2.7.4.tgz -C /opt cd /opt/harbor

关键配置修改: 编辑harbor.yml文件,重点关注以下参数:

hostname: your.domain.com # 改为实际IP或域名 http: port: 8080 # 非标准端口需开放防火墙 data_volume: /data/harbor # 存储路径建议单独挂载 database: password: "StrongPass123" # 修改默认数据库密码

存储目录准备

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

执行安装脚本:

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

提示:添加--with-trivy启用漏洞扫描功能,--with-chartmuseum支持Helm charts

服务状态检查

docker-compose ps

正常应显示所有容器状态为Up,如有异常可查看对应日志:

docker-compose logs -f core

4. 运维优化与常见问题解决

性能调优建议

  • 数据库优化:调整PostgreSQL共享缓冲区大小
sed -i 's/^#shared_buffers = 128MB/shared_buffers = 1GB/' /data/harbor/database/postgresql.conf
  • Redis配置:增加最大内存限制
# 在docker-compose.yml的redis部分添加 command: ["redis-server", "--maxmemory 2gb", "--maxmemory-policy allkeys-lru"]

权限问题处理: 若遇到容器启动失败,常见原因是存储目录权限:

sudo chown -R 10000:10000 /data/harbor sudo find /data/harbor -type d -exec chmod 755 {} \;

备份与恢复方案

  1. 数据备份:
tar czvf harbor-backup-$(date +%Y%m%d).tar.gz /data/harbor
  1. 配置备份:
cp /opt/harbor/harbor.yml /opt/harbor/harbor.yml.bak

升级注意事项

  1. 先备份数据和配置
  2. 停止当前服务:
docker-compose down -v
  1. 获取新版本安装包并迁移配置
  2. 执行升级脚本:
./install.sh --upgrade

5. 企业级功能集成与应用

LDAP/AD集成配置: 在harbor.yml中添加以下配置:

ldap: url: ldap://ldap.example.com base_dn: dc=example,dc=com uid: sAMAccountName filter: (objectClass=person) scope: subtree timeout: 5

CI/CD流水线集成

  1. 在Jenkins中配置Docker登录:
withCredentials([usernamePassword(credentialsId: 'harbor-creds', usernameVariable: 'USER', passwordVariable: 'PASS')]) { sh 'docker login -u $USER -p $PASS your.domain.com' }
  1. Kubernetes拉取私有镜像:
apiVersion: v1 kind: Secret metadata: name: harbor-pull-secret type: kubernetes.io/dockerconfigjson data: .dockerconfigjson: <base64-encoded-auth>

镜像同步策略: 设置跨仓库复制规则,实现开发→测试→生产的镜像流转:

  1. 创建目标项目
  2. 配置复制规则:
name: prod-sync description: Sync from dev to prod src_registry: {url: https://dev-harbor.example.com} dest_registry: {url: https://prod-harbor.example.com} filters: - {name: "dev-project/**", tag: "release-*"} trigger: type: manual

安全扫描集成: 启用Trivy扫描后,可设置自动扫描策略:

  1. 项目→配置→漏洞扫描
  2. 设置自动扫描触发条件
  3. 配置阻断规则(如高危漏洞阻止推送)

在实际企业环境中,我们还需要考虑高可用部署方案。一种典型的架构是:

  • 前端负载均衡(Nginx/HAProxy)
  • 多节点Harbor服务
  • 共享存储(如Ceph/NFS)
  • 外部数据库(PostgreSQL集群)

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

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

立即咨询