在当前 H15 官方发布的 1.9.1 版本中,系统默认并未包含 Docker。
为了满足容器化部署的需求,我们尝试通过 Yocto 编译的方式,将 Docker 引入系统并确保其可以正常运行。
一、引入 Docker 所需的 meta 层
Docker 依赖于 meta-virtualization,但该 meta 层在默认的 Hailo Yocto 系统中并不存在,因此需要手动获取。
git clone -b kirkstone https://git.yoctoproject.org/meta-virtualization
二、配置 bblayers.conf
在 build/conf/bblayers.conf 中加入刚才 clone 的目录。
当然,也可以像之前一样,将其加入到其他统一管理 layer 的配置位置,具体可参考我之前 USB WiFi 中的示例。
/home/alex/Work/H15/meta-hailo-soc/meta-virtualization \
三、在 local.conf 中启用 Docker 相关组件
接下来,在 build/conf/local.conf 中添加 Docker 及其相关组件。
这里我选择使用如下配置:
IMAGE_INSTALL:append = " docker python3-docker-compose containerd-opencontainers python3-pip"
同样,这部分配置也可以参考 USB WiFi 的做法,改为加入到自定义 package 中进行管理。
四、WIC 编译失败问题分析
在加入 Docker 后进行编译时,我们会发现 wic 无法正常生成镜像。
报错如下:

其根本原因在于:引入 Docker 后,rootfs 体积显著增大,导致 wic 打包失败。
在 H15 1.9.1 版本中存在一个已知 bug,即使我们在local.conf 中显式配置
IMAGE_ROOTFS_SIZE,例如:
IMAGE_ROOTFS_SIZE:forcevariable = "262144"
也无法生效。
五、定位并修复 WKS 配置问题
通过以下命令检查当前使用的 WKS 文件:
bitbake -e core-image-minimal | grep ^WKS_FILE=
可以看到当前使用的 WKS 文件为 sd.wks.in 而不是正常的 *.wks 。
因此,我们需要修改
meta-hailo-bsp/conf/machine/include/hailo1x-base.inc 中的配置:
#WKS_FILE = "sd.wks.in"
+WKS_FILE = "sd.wks"
随后,在原有的 sd.wks 文件中,将内容修改为如下形式:
part /boot --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 4 --size=-1 --use-uuid
part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 4 --use-uuid --size=-1
完成上述修改后,就没有这个size的限制了,即可顺利将 Docker 编译进 wic 镜像,并成功刷机运行。
六、大陆环境下 Docker 镜像加速配置
在中国大陆环境下使用 Docker,通常需要配置镜像加速器。
编辑 Docker 配置文件:
vi /etc/docker/daemon.json
写入如下内容(2026年1月测试可用):
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://docker.m.daocloud.io",
"https://docker.1ms.run"
]
}
随后重启 Docker 服务:
killall dockerd
dockerd &
七、Docker 功能验证
最后,通过运行官方测试镜像来验证 Docker 是否工作正常:
docker run --rm hello-world
若容器能够正常运行并输出欢迎信息,则说明 Docker 已成功在 H15H 平台上部署完成。
PS: 在运行docker之前请确保网络正常并且设备的系统时间与现实时间一致:
设置 IP 地址: ifconfig wlan0 192.168.0.30 netmask 255.255.255.0 up 设置网关: route add default gw 192.168.0.1 wlan0 修改 DNS: # 编辑 /etc/resolv.conf,增加一行: nameserver 8.8.8.8 修改时间:date -s "2026-01-08 08:00:00"
发表回复