我有一个Docker镜像,它是由x86机器构建并上传到AmazonECR的。
我正试图在ARM机器上运行此映像;然而,我得到了以下内容:
$sudo docker run 1b3ed34937e8
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
standard_init_linux.go:228: exec user process caused: exec format error
我需要重建此图像吗?是否可以只使用映像而不使用dockerfile进行重建?
您还可以使用docker中内置的仿真层:
docker run --platform linux/amd64 {imagename}
由于这是基于仿真的,所以它的性能不如使用主机体系结构运行容器。
您正试图在不同的体系结构(ARM(上构建x86 Docker映像。
在Mac上重建图像,或者如果您仍在X86上构建图像,则可以设置目标平台
docker buildx build --platform darwin/amd64 -t app .
对于未来的搜索,您可以安装qemu仿真:
apt-get-install qemu-binfmt支持qemu-user静态
参考:https://www.stereolabs.com/docs/docker/building-arm-container-on-x86/