ARM服务器离线部署Harbor:ARM64离线包安装与推送避坑指南
简介这份资源是面向ARM64架构环境的Harbor容器镜像仓库离线安装包专为在边缘计算、物联网及国产化ARM服务器上部署私有镜像仓库的运维与开发人员准备可解决无外网或网络受限场景下无法在线拉取安装文件的问题。压缩包共6个文件以sh安装脚本、gz镜像归档、license许可文件、prepare预检脚本及tmpl配置模板为主整体约639.65MB解压后即可按手册完成部署与参数调整。目前已有261人学习下载适合需要快速落地企业级镜像管理的中高级用户参考。借助该离线包读者可省去逐一下载依赖的繁琐流程直接获得完整的安装脚本、镜像归档与配置模板便于在隔离环境中完成Harbor 2.8.2的搭建、权限配置与后续镜像分发验证。1. ARM 服务器上装 Harbor为什么离线包才是正解在国产化替代和信创项目里ARM 架构服务器已经不是什么新鲜事鲲鹏、飞腾、麒麟 V10 这些组合我这两年碰得越来越多。但每次要在这种环境里搭一套私有镜像仓库最头疼的往往不是 Harbor 本身而是网络——很多生产环境压根不通外网或者只开放极少数白名单端口docker pull直接卡死。这时候harbor-offline-installer-v2.8.2-arm64.tar.gz这种离线包就成了刚需它把 Harbor 的核心组件镜像、安装脚本、配置文件全部打包好解压即用不需要在目标机器上一条条拉镜像。这篇文章就是围绕这个 ARM64 离线包把从环境准备到推送验证的完整链路拆开讲顺带把几个我踩过的坑摆出来让你少走弯路。2. 拆开离线包里面到底装了什么为什么 ARM64 不能混用 x86 包2.1 离线包与在线安装的本质区别Harbor 官方提供两种安装方式在线安装和离线安装。在线安装的install.sh会在执行时从 Docker Hub 拉取十几个组件镜像包括harbor-core、harbor-portal、harbor-db、redis、nginx等。离线包则把这些镜像提前docker save成 tar 文件放在harbor/images目录下安装时直接docker load导入本地。对于 ARM 环境这个区别更关键——ARM64 的镜像和 x86_64 的镜像不是同一套 manifest你拿 x86 的离线包在鲲鹏上跑docker load能成功但docker run时会报exec format error因为二进制指令集对不上。harbor-offline-installer-v2.8.2-arm64.tar.gz这个包名里v2.8.2是 Harbor 版本arm64是架构标识。解压后你会看到这样的目录结构harbor/ ├── harbor.v2.8.2.tar.gz # 所有组件镜像的打包文件 ├── harbor.yml.tmpl # 配置模板 ├── install.sh # 安装入口脚本 ├── prepare # 环境预检脚本 └── common.sh # 公共函数库其中harbor.v2.8.2.tar.gz是核心里面是十几个docker save出来的镜像层。install.sh会调用prepare检查 Docker、Docker Compose 版本然后加载镜像、渲染配置、启动容器。2.2 为什么必须确认 ARM64 架构匹配我见过有人把 x86 的 Harbor 离线包直接扔到飞腾服务器上install.sh跑完没报错但访问 UI 时 502查docker ps发现harbor-core容器不断重启。docker logs harbor-core里一行standard_init_linux.go:228: exec user process caused: exec format error就是答案——镜像里的二进制是 x86 指令集ARM CPU 执行不了。确认方法很简单在目标机器上执行uname -m输出aarch64或arm64才可以用这个包。如果是x86_64那就得换对应的 x86 离线包。另外注意有些国产化环境虽然 CPU 是 ARM但操作系统可能是 32 位的 ARMv7那arm64包同样跑不起来必须用arm或armv7的包。uname -m输出armv7l就属于这种情况。2.3 解压与预检别跳过 prepare 脚本拿到 tar.gz 后第一步是解压tar -zxvf harbor-offline-installer-v2.8.2-arm64.tar.gz cd harbor解压后不要急着改配置先跑一次预检./prepare这个脚本会检查 Docker 是否安装、Docker Compose 版本是否满足、端口 80/443 是否被占用。如果 Docker 没装它会提示你先装 Docker。在 ARM 环境里Docker 的安装本身也可能是个坑——很多国产 OS 的默认源里没有docker-ce需要手动配置 ARM64 的仓库地址。我一般会先确认docker --version docker compose versionHarbor v2.8.2 要求 Docker 17.06 和 Docker Compose 1.18。如果docker compose命令不存在可能是只装了docker-compose带横杠的旧版需要建个软链或者升级。预检通过后再进入配置环节。3. 配置 harbor.yml从模板到可运行实例的关键参数3.1 复制模板并修改 hostname 与端口harbor.yml.tmpl是配置模板直接复制一份cp harbor.yml.tmpl harbor.yml然后编辑harbor.yml最核心的几个参数hostname: 192.168.209.133 http: port: 80 https: port: 443 harbor_admin_password: Harbor12345 data_volume: /data/harborhostname必须改成目标机器的 IP 或域名不能保留reg.mydomain.com。这个值会写进 Docker 的daemon.json和 Harbor 的配置里如果填错后面docker push会报dial tcp 192.168.209.133:443: connect: connection refused或者证书不匹配。http.port默认 80如果被 nginx 或其他服务占了改成 8080 之类的。harbor_admin_password是 admin 用户的初始密码生产环境务必改掉。data_volume是数据持久化目录默认/data如果磁盘空间紧张改到大盘上。3.2 HTTPS 配置证书怎么放什么时候可以跳过Harbor 默认走 HTTPS但离线环境里很多人图省事直接注释掉 HTTPS 段只留 HTTP。这样做能跑起来但docker push时需要改 Docker 的daemon.json加insecure-registries。我的建议是如果是内网测试HTTP 够用如果是生产最好配自签证书或企业 CA 证书。配 HTTPS 需要三个东西证书文件、私钥、CA 证书可选。在harbor.yml里这样写https: port: 443 certificate: /data/harbor/certs/harbor.crt private_key: /data/harbor/certs/harbor.key证书的 CN 或 SAN 必须包含hostname里填的 IP 或域名。自签证书可以用 openssl 生成openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \ -keyout harbor.key -out harbor.crt \ -subj /CN192.168.209.133生成后放到/data/harbor/certs/下确保install.sh执行时能读到。如果跳过 HTTPS记得在harbor.yml里把https整段注释掉否则prepare会报证书文件不存在。3.3 数据目录与日志配置的取舍data_volume默认是/dataHarbor 会在下面建database、redis、registry、job_logs等子目录。如果服务器有多块盘建议把data_volume指到大容量盘上比如/data1/harbor。日志方面Harbor 的容器日志默认走 Docker 的 json-file 驱动时间长了会占满/var/lib/docker。可以在harbor.yml里加log: level: info local: rotate_count: 50 rotate_size: 200M location: /var/log/harbor这样日志会落到宿主机/var/log/harbor并且按大小轮转。rotate_count是保留文件数rotate_size是单文件大小上限。生产环境建议把level设成warning减少日志量。配置改完后执行安装./install.sh这个脚本会依次做加载镜像、渲染docker-compose.yml、启动容器。如果一切顺利最后会输出----Harbor has been installed and started successfully.----。此时用浏览器访问http://192.168.209.133用 admin 和刚才设的密码登录应该能看到 Harbor 的 Web UI。4. 避坑排查ARM 环境 Harbor 推送失败的五个血泪经验4.1 现象docker push 报 dial tcp 192.168.209.133:443 connection refused原因Docker 客户端默认走 HTTPS 推送但 Harbor 只配了 HTTP或者 HTTPS 证书不被信任。另外如果harbor.yml里hostname填的是域名但 DNS 解析不到也会出现类似错误。解决如果是 HTTP 模式在推送端机器的/etc/docker/daemon.json里加{ insecure-registries: [192.168.209.133] }然后重启 Dockersystemctl restart docker。如果是 HTTPS 模式把自签 CA 证书放到/etc/docker/certs.d/192.168.209.133/ca.crt重启 Docker。注意目录名必须是hostname:port的格式端口是 443 时可以省略。4.2 现象docker load 成功但容器启动后 exec format error原因离线包里的镜像架构和宿主机不匹配。常见于把 x86 包拿到 ARM 机器上或者把 ARM64 包拿到 32 位 ARM 上。解决用docker inspect image | grep Architecture确认镜像架构。如果是amd64而机器是aarch64必须换包。另外有些国产 OS 的 Docker 版本较老对多架构 manifest 支持不好建议用官方推荐的 Docker 版本。4.3 现象Harbor UI 能打开但推送镜像时 413 Request Entity Too Large原因nginx 默认的client_max_body_size是 1M推送大镜像时请求体超限。解决修改harbor/common/config/nginx/nginx.conf在http或server段加client_max_body_size 0;0 表示不限制然后docker compose restart nginx。注意这个文件是install.sh渲染出来的直接改harbor.yml里的nginx相关配置可能不生效需要改模板或渲染后的文件。4.4 现象安装脚本卡在 prepare 阶段提示端口被占用原因80 或 443 端口被宿主机的 nginx、apache 或其他服务占了。解决ss -tlnp | grep :80找到占用进程要么停掉要么改harbor.yml里的http.port为其他端口比如 8080。改完重新跑./install.sh。注意如果之前已经装过一次失败先执行docker compose down清理残留容器。4.5 现象ARM 服务器上 Docker 拉取基础镜像超时原因离线包只包含 Harbor 自身的组件镜像不包含你业务用的基础镜像。如果你在 Harbor 上推送的镜像依赖某个基础镜像而该基础镜像在 ARM 环境里没有缓存构建时仍会去外网拉。解决提前在有网的 x86 或 ARM 机器上docker pull对应架构的基础镜像docker save成 tar拷贝到目标机器docker load。或者在内网搭一个临时 registry 做中转。注意基础镜像本身也要选 ARM64 版本比如arm64v8/ubuntu而不是ubuntu。5. 验证与进阶用 skopeo 做跨架构镜像检查把推送成功率提上去Harbor 装好只是第一步真正在生产里跑起来还得确保推上去的镜像架构正确、标签规范、清理策略到位。我一般会在 Harbor 所在的 ARM 机器上装一个skopeo它能在不拉取完整镜像的情况下检查远程镜像的架构信息。比如验证刚推上去的镜像skopeo inspect docker://192.168.209.133/library/myapp:v1.0输出里会包含Architecture字段如果是arm64就说明推对了。如果显示amd64那这个镜像在 ARM 节点上跑不起来需要重新构建。skopeo在 ARM 环境里安装也不复杂麒麟 V10 可以用yum install skopeoUbuntu ARM 用apt install skopeo。另一个实用技巧是给 Harbor 配镜像清理策略。Harbor v2.8.2 支持在 UI 里设置 tag 保留规则比如只保留最近 10 个 tag自动清理旧的。但注意清理策略默认是每天凌晨跑一次如果磁盘紧张可以手动触发docker exec harbor-core /harbor/harbor_core cleanup这个命令会读取数据库里的清理策略并执行。执行前最好确认一下harbor.yml里的data_volume剩余空间避免清理过程中把正在使用的层删掉。我一般会先跑一次df -h /data看看余量再决定是否手动触发。还有一个容易被忽略的点Harbor 的数据库是 PostgreSQL跑在容器里。如果 ARM 服务器的内存小于 4Gharbor-db容器可能因为 OOM 被 kill。建议至少给 Harbor 留 4G 内存docker stats可以实时看各容器资源占用。如果内存实在紧张可以把harbor.yml里的database.max_idle_conns和max_open_conns调小减少连接数。从那以后我每次在 ARM 环境装 Harbor都会先跑一遍uname -m确认架构再检查docker compose version然后才解压离线包。装完后第一件事不是推业务镜像而是用skopeo inspect验证一个测试镜像的架构确认无误再批量推送。这套流程帮我省了不少返工时间希望帮到你。本文还有配套的精品资源点击获取

相关新闻

用Docker部署FileDrop:实现浏览器间的点对点临时文件传输

用Docker部署FileDrop:实现浏览器间的点对点临时文件传输

作为一个经常要在不同设备之间倒腾文件的人,我找了很多年“临时传文件”的顺手工具。网盘要登录、要等待、有容量限制;聊天软件传文件会压缩画质、过期要重新下载;用U盘拷又免不了来回跑腿。后面我在 GitHub 上发现了一个叫 FileDrop 的开源项…

2026/10/11 2:38:18 阅读更多 →
ping、tcping、HTTP三连测:网络故障排查实战指南

ping、tcping、HTTP三连测:网络故障排查实战指南

1. 先说清楚:这个工具到底解决了什么 做运维和开发这些年,我电脑里一直躺着三个命令:ping、tcping、curl。不管是新机器上线、接口联调,还是半夜被叫起来处理"网站打不开"的工单,第一步永远是先探一下网络通…

2026/10/12 17:54:45 阅读更多 →
Python开发电商网站实战:从Flask选型到订单落库的完整闭环

Python开发电商网站实战:从Flask选型到订单落库的完整闭环

这两年开始,“会用Python”已经成了很多人的基本技能,但真正用Python把一个能跑通完整业务闭环的网站从零搭出来,依然是一道不小的坎。我自己带过不少新人,也接过不少外包项目,感触最深的是:大部分人在“学…

2026/10/9 13:12:30 阅读更多 →

最新新闻

Tesseract OCR中文识别实战:安装、调优与避坑指南

Tesseract OCR中文识别实战:安装、调优与避坑指南

简介:Tesseract OCR 安装包与中文语言包面向需要在本地完成图片文字识别的开发者、测试人员及自动化办公用户,尤其适合用 Python 调用 OCR 引擎处理中文文档、票据或截图的人群。压缩包共 723 个文件,约 36.01MB,以 C 源码&#x…

2026/10/12 17:54:23 阅读更多 →
深入解构Claude Code - 第 8 篇 · 数据放哪、钱怎么算:用 TaoToken 统一 Key 看清 JSONL 会话与用量账本

深入解构Claude Code - 第 8 篇 · 数据放哪、钱怎么算:用 TaoToken 统一 Key 看清 JSONL 会话与用量账本

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 17:54:23 阅读更多 →
ResNet特征提取+SVM分类:乳腺癌病理图像检测实战

ResNet特征提取+SVM分类:乳腺癌病理图像检测实战

简介:这份资源面向医学影像分析与深度学习入门者,提供一套将ResNet深度残差网络与SVM支持向量机结合的乳腺癌检测完整方案,可用于辅助诊断、课程设计或算法复现练习。压缩包共25个文件,约7.1MB,包含Python脚本、模型权…

2026/10/12 17:54:23 阅读更多 →
2026年七款AI编程工具横评:TaoToken统一Key接入Cursor与Windsurf实测

2026年七款AI编程工具横评:TaoToken统一Key接入Cursor与Windsurf实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 17:54:22 阅读更多 →
Unity 鼠标图标更换实战:用 TaoToken 统一管理 Cursor 资源与 Script 配置

Unity 鼠标图标更换实战:用 TaoToken 统一管理 Cursor 资源与 Script 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 17:54:22 阅读更多 →
DeepSeek AI接入企业微信:从API到聊天机器人的完整实现指南

DeepSeek AI接入企业微信:从API到聊天机器人的完整实现指南

简介:这是一套将DeepSeek大模型接入微信聊天的完整工程实现,适合具备基础Python技能、希望为个人微信账号提供智能对话能力的开发者。项目从模型加载、消息收发到前端交互均有配套代码,支持文本对话、Web界面操作,并附带文档上传与…

2026/10/12 17:53:21 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →