对于希望体验或开发 OpenHarmony(鸿蒙)PC命令行应用的开发者而言,通常需要真机或者 ARM64 架构的硬件环境。购置专用设备成本较高,且不便于快速搭建。本文介绍一种极低成本、最小可用 的"丐版"方案:利用 Docker 和 QEMU 仿真技术,在您已有的 x86_64 服务器(包括 WSL)上快速构建并运行一个轻量级的鸿蒙PC容器环境。
本文给大家介绍一种低成本在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,操作流程还可以进一步简化,操作更简单了。因为 Docker Desktop 自带了一套虚拟化机制,不需要自己再挂上一个 QEMU 了。首先配一个国内的 Docker Registry 源:
配置方式是进入 Settings > Docker Engine 菜单,修改里面的配置文件,往里面加一个字段:
json
"registry-mirrors": [
"https://docker.1ms.run"
]
剩下只需下面一步操作即可下载并运行起来容器:
bash
#拉取镜像并启动容器
docker run --name=ohos -itd --platform linux/arm64 hqzing/docker-mini-openharmony:latest
#进入容器
docker exec -it ohos sh
Docker Desktop上操作完成。但如果是其它x86_64的linux服务器,继续参考以下步骤:
步骤 1:安装 Docker CE
由于是全新服务器,首先安装 Docker。为加速安装并确保网络稳定性,推荐使用国内镜像源脚本:
bash
# 使用国内镜像源脚本安装 Docker CE
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)
安装过程中,关键配置选择如下(确保国内访问速度):
- Docker CE 源:
华为云 - Docker CE 源网络地址:
公网 - Docker Registry 源:
毫秒镜像(推荐,国内加速) - Docker CE 软件源网络协议:
HTTP - Docker Engine 版本:
安装最新版本
步骤 2:注册 QEMU 解释器 (ARM64 支持)
核心步骤:让 x86_64 宿主机内核具备运行 ARM64 架构程序的能力。这通过 Linux 内核的 binfmt_misc 机制和 QEMU 用户态仿真器实现。
bash
# 注册 ARM64 解释器 (使用国内镜像源加速拉取)
docker run --rm --privileged docker.1ms.run/tonistiigi/binfmt --install arm64
命令详解与注意事项:
--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 程序或容器。
验证注册成功:
bash
# 检查 ARM64 处理程序是否启用
ls /proc/sys/fs/binfmt_misc/qemu-aarch64
# 输出应包含 'enabled' 状态
步骤 3:拉取并运行鸿蒙容器
现在可以拉取专为体验和轻量开发准备的鸿蒙容器镜像并运行:
bash
# 拉取并运行鸿蒙容器 (使用国内镜像源加速)
docker run --name=ohos -itd --platform linux/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二进制软件。
-
进入容器:
bashdocker exec -it ohos sh -
下载并安装移植好的二进制软件 (示例:Neovim):
bashcd /root # 使用国内加速源下载 Neovim (ARM64 for OpenHarmony) curl -L -O https://ghfast.top/https://github.com/Harmonybrew/ohos-neovim/releases/download/0.11.4/neovim-0.11.4-ohos-arm64.tar.gz # 解压到 /opt 目录 tar -zxf neovim-0.11.4-ohos-arm64.tar.gz -C /opt # 将 Neovim 加入 PATH export PATH=$PATH:/opt/neovim-0.11.4-ohos-arm64/bin # 验证安装 nvim --version
实用技巧:宿主机与容器文件交互
开发过程中常需在宿主机和容器间传递文件:
-
从宿主机拷贝文件到容器:
bashdocker cp /宿主机/文件路径 ohos:/容器内/目标路径 # 示例:拷贝 test.c 到容器的 /root/build/ 目录 docker cp ./test.c ohos:/root/build/ -
从容器拷贝文件到宿主机:
bashdocker cp ohos:/容器内/文件路径 /宿主机/目标路径
总结
没鸿蒙PC真机的小伙伴们也有福音啦。感谢hqzing大佬的鸿蒙容器,介绍地址:《低成本玩转鸿蒙容器的丐版方案》
总结下鸿蒙PC容器使用
无论你是什么样的电脑系统,在docker 环境就绪的前提下,就这些步骤了。
以准备环境和测试axel命令行应用为例:
bash
#1.带镜像加速前缀docker.1ms.run/(镜像加速用),让服务器支持arm64指令(只需首次执行)
docker run --rm --privileged docker.1ms.run/tonistiigi/binfmt --install arm64
#2.拉取鸿蒙容器镜像(只需首次执行)
docker run --name=ohos -itd --platform linux/arm64 docker.1ms.run/hqzing/docker-mini-openharmony:latest
#3.测试axel命令,拷贝宿主机中生成的axel可执行程序到容器中
docker cp ./axel ohos:/root/
#4.进入ohos pc容器
docker exec -it ohos sh
#5.验证测试命令行应用
cd /root
#curl 下载方式
curl -L -O https://github.com/Harmonybrew/ohos-neovim/releases/download/0.11.4/neovim-0.11.4-ohos-arm64.tar.gz
#axel下载方式
./axel -k -n 50 https://github.com/Harmonybrew/ohos-neovim/releases/download/0.11.4/neovim-0.11.4-ohos-arm64.tar.gz
axel多线程下载工具的获取,参见博文:[鸿蒙PC命令行程序移植]:移植axel多线程高速下载工具踩坑记
axel多线程下载工具和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/,共同交流进步!