低成本搭建鸿蒙PC运行环境:基于 Docker 的 x86_64 服务器 对于希望体验或开发 OpenHarmony鸿蒙PC命令行应用的开发者而言通常需要真机或者 ARM64 架构的硬件环境。购置专用设备成本较高且不便于快速搭建。本文介绍一种极低成本、最小可用的“丐版”方案利用 Docker 和 QEMU 仿真技术在您已有的x86_64 服务器包括 WSL上快速构建并运行一个轻量级的鸿蒙PC容器环境。更多交流学习欢迎加入开源鸿蒙PC社区https://harmonypc.csdn.net/本文给大家介绍一种低成本在x86_64架构上运行OpenHarmony PC命令行应用环境的方案。通过Docker和QEMU仿真技术无需ARM64硬件即可构建轻量级鸿蒙容器环境简化部署和使用流程。在Docker环境就绪的前提下只需拉取镜像一分钟即刻拥有一个轻量级的鸿蒙PC运行环境。除了用来测试和跑命令行应用还可以做为鸿蒙PC的本地命令行和三方库移植开发测试的一体环境。注想跑harmonyos移动端App的请跳过该轻量级容器仅方便鸿蒙PC命令行和三方库的开发、编译和调试用。环境准备 x86_64 电脑或服务器其他的linux服务器也可以本文演示环境选用 Ubuntu 24.04 x86_64 服务器。如果你是win10系统可以使用WSL直接在 Windows 上运行的 Linux 环境。win10系统上的WSL介绍及安装参见博客《Windows10下使用WSL安装 Docker》方式一、Windows下的Docker Desktop环境下如果你在 windows上用的是 Docker Desktop操作流程还可以进一步简化操作更简单了。因为 Docker Desktop 自带了一套虚拟化机制不需要自己再挂上一个 QEMU 了。首先配一个国内的 Docker Registry 源:配置方式是进入 Settings Docker Engine 菜单修改里面的配置文件往里面加一个字段registry-mirrors:[https://docker.1ms.run]剩下只需下面一步操作即可下载并运行起来容器#拉取镜像并启动容器dockerrun--nameohos-itd--platformlinux/arm64 hqzing/docker-mini-openharmony:latest#进入容器dockerexec-itohosshDocker Desktop上操作完成。注:在正常情况下最新版本的 Docker Desktop 默认就支持运行不同架构的镜像,按上面操作正常没问题。它的 官方文档 是这么说的Docker Desktop supports running and building multi-platform imagesunder emulation by default.所以你可以尝试直接执行 #在docker desktop中使用以下命令拉起容器并运行dockerrun--nameohos-itd--platformlinux/arm64 hqzing/docker-mini-openharmony:latest在我自己的电脑上试了不行可能跟具体的环境或配置有关。如果你发现它在你的电脑上不支持运行 arm64 容器则需先执行一遍 以下命令进行 QEMU 的注册。dockerrun--rm--privilegedtonistiigi/binfmt--installarm64注最新容器地址作者更换了。新项目的地址https://github.com/hqzing/dockerharmony新的镜像标签是这个hqzing/dockerharmony:latest方式二 虚拟机或者 x86_64的linux环境下但如果是其它x86_64的linux服务器继续参考以下步骤步骤 1安装 Docker CE由于是全新服务器首先安装 Docker。为加速安装并确保网络稳定性推荐使用国内镜像源脚本# 使用国内镜像源脚本安装 Docker CEbash(curl-sSLhttps://linuxmirrors.cn/docker.sh)安装过程中关键配置选择如下确保国内访问速度Docker CE 源华为云Docker CE 源网络地址公网Docker Registry 源毫秒镜像(推荐国内加速)Docker CE 软件源网络协议HTTPDocker Engine 版本安装最新版本步骤 2注册 QEMU 解释器 (ARM64 支持)核心步骤让 x86_64 宿主机内核具备运行 ARM64 架构程序的能力。这通过 Linux 内核的binfmt_misc机制和 QEMU 用户态仿真器实现。# 注册 ARM64 解释器 (使用国内镜像源加速拉取)dockerrun--rm--privilegeddocker.1ms.run/tonistiigi/binfmt--installarm64命令详解与注意事项--rm: 容器退出后自动删除。--privileged: 授予容器修改宿主机内核设置 (binfmt_misc) 的必要权限。docker.1ms.run/tonistiigi/binfmt: 使用国内镜像源加速拉取tonistiigi/binfmt工具镜像。--install arm64: 向内核注册 ARM64 架构的仿真支持。重要提示重启需重注册服务器重启后需要重新执行此命令。全局生效注册成功后宿主机和 Docker 均可直接运行 ARM64 二进制程序。网络优化使用docker.1ms.run/前缀或配置国内 Docker Registry 源如步骤 1 中选择的毫秒镜像是确保此命令在中国大陆顺利执行的关键。原理简述此命令利用binfmt_misc内核模块将 QEMU 用户态仿真器注册为 ARM64 程序的处理程序。当系统尝试执行一个 ARM64 格式的程序时内核会自动调用 QEMU 来“翻译”并执行 ARM64 指令实现在 x86_64 CPU 上运行 ARM64 程序或容器。验证注册成功# 检查 ARM64 处理程序是否启用ls/proc/sys/fs/binfmt_misc/qemu-aarch64# 输出应包含 enabled 状态步骤 3拉取并运行鸿蒙容器现在可以拉取专为体验和轻量开发准备的鸿蒙容器镜像并运行# 拉取并运行鸿蒙容器 (使用国内镜像源加速)dockerrun--nameohos-itd--platformlinux/arm64 docker.1ms.run/hqzing/docker-mini-openharmony:latest镜像源说明原始镜像托管于 GitHub Container Registry (ghcr.io/hqzing/docker-mini-openharmony:latest)。为优化国内体验镜像已同步至 Docker Hub (hqzing/docker-mini-openharmony:latest)。命令中使用docker.1ms.run/前缀通过国内镜像源毫秒镜像加速拉取 Docker Hub 上的镜像显著提升下载速度。感谢hqzing大佬提供的容器环境他的博客https://blog.csdn.net/hqzing步骤 4体验鸿蒙环境容器运行后即可进入其中体验鸿蒙环境并安装PC二进制软件。进入容器dockerexec-itohossh下载并安装移植好的二进制软件 (示例Neovim)cd/root# 使用国内加速源下载 Neovim (ARM64 for OpenHarmony)curl-L-Ohttps://ghfast.top/https://github.com/Harmonybrew/ohos-neovim/releases/download/0.11.4/neovim-0.11.4-ohos-arm64.tar.gz# 解压到 /opt 目录tar-zxfneovim-0.11.4-ohos-arm64.tar.gz-C/opt# 将 Neovim 加入 PATHexportPATH$PATH:/opt/neovim-0.11.4-ohos-arm64/bin# 验证安装nvim--version实用技巧宿主机与容器文件交互开发过程中常需在宿主机和容器间传递文件从宿主机拷贝文件到容器dockercp/宿主机/文件路径 ohos:/容器内/目标路径# 示例拷贝 test.c 到容器的 /root/build/ 目录dockercp./test.c ohos:/root/build/从容器拷贝文件到宿主机dockercpohos:/容器内/文件路径 /宿主机/目标路径容器的使用及验证demo参见博文[鸿蒙PC命令行程序移植]移植axel多线程高速下载工具踩坑记。在该文中以移植axel多线程高速下载工具为例不但详细介绍了axel下载工具的移植过程而且还详细介绍了如何使用鸿蒙PC容器对工具进行一个全面的验证。移植成功的axel仓库地址https://gitcode.com/qq8864/axel总结没鸿蒙PC真机的小伙伴们也有福音啦。感谢hqzing大佬的鸿蒙容器介绍地址《低成本玩转鸿蒙容器的丐版方案》总结下鸿蒙PC容器使用无论你是什么样的电脑系统在docker 环境就绪的前提下就这些步骤了。以准备环境和测试axel命令行应用为例#1.带镜像加速前缀docker.1ms.run/镜像加速用让服务器支持arm64指令(只需首次执行)dockerrun--rm--privilegeddocker.1ms.run/tonistiigi/binfmt--installarm64#2.拉取鸿蒙容器镜像(只需首次执行)dockerrun--nameohos-itd--platformlinux/arm64 docker.1ms.run/hqzing/docker-mini-openharmony:latest#3.测试axel命令拷贝宿主机中生成的axel可执行程序到容器中dockercp./axel ohos:/root/#4.进入ohos pc容器dockerexec-itohossh#5.验证测试命令行应用cd/root#curl 下载方式curl-L-Ohttps://github.com/Harmonybrew/ohos-neovim/releases/download/0.11.4/neovim-0.11.4-ohos-arm64.tar.gz#axel下载方式./axel-k-n50https://github.com/Harmonybrew/ohos-neovim/releases/download/0.11.4/neovim-0.11.4-ohos-arm64.tar.gzaxel多线程下载工具的获取参见博文[鸿蒙PC命令行程序移植]移植axel多线程高速下载工具踩坑记移植成功的axel仓库地址https://gitcode.com/qq8864/axelaxel多线程下载工具和curl命令行的下载速度大比拼截图本方案充分利用 Docker 的跨平台能力和 QEMU 的用户态仿真成功在x86_64 架构的服务器上构建了可用的ARM64 鸿蒙容器环境。方案的核心优势在于极低成本复用现有 x86_64 服务器或 WSL无需购置 ARM64 硬件。最小可用提供基础的鸿蒙运行环境满足体验和轻量开发需求。国内网络优化从 Docker 安装、镜像拉取 (docker.1ms.run)、到软件下载 (ghfast.top)全程采用国内镜像源加速有效解决了中国大陆开发者的网络瓶颈。灵活便捷Docker 容器易于创建、销毁和复用文件交互简单。此“丐版”方案为开发者快速上手鸿蒙开发、进行应用移植或环境验证提供了一条高效、经济的路径。后续可根据实际需求在容器内进一步安装 SDK、构建工具或进行Native应用开发部署。参考链接蓝香蕉代码 |【鸿蒙电脑开发命令行-签名篇与本机hdc shell】低成本玩转鸿蒙容器的丐版方案鸿蒙PC命令行适配 Ubuntu22.04 lycium_plusplus环境搭建SOP流程最后欢迎加入开源鸿蒙PC社区https://harmonypc.csdn.net/共同交流进步