在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
重启测试是否成功