在x86环境运行arm环境的容器

Windows

Docker

在windows上 Docker Desktop 已经内置了 binfmt_misc,参考Multi-platform images | Docker Docs

因此只需要安装Docker Desktop就能运行 arm32或者arm64等环境

Podman

由于Podman Desktop没有集成binfmt_misc,因此需要借助第三方qemu-user-static

multiarch/qemu-user-static: :earth_africa: /usr/bin/qemu-*-static (github.com)

操作步骤:

podman run --name qemu-user-static --privileged multiarch/qemu-user-static --reset -p yes
# 在执行完上一步之后,就已经可以运行arm环境了

配置开机自启

# 进入podman宿主环境
podman machine ssh
# 生成systemd service
podman generate systemd -n --new -f qemu-user-static

# 此时 /root目录下会生成一个 container-qemu-user-static.service 文件
# 将此文件移动到 /etc/systemd/system 目录
mv container-qemu-user-static.service /etc/systemd/system

systemctl daemon-reload
systemctl enable --now container-qemu-user-static

重启测试是否成功