ARM上的x86 Docker镜像



我有一个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/

最新更新