我能够运行手臂图像(例如,但是在我尝试过的所有Linuxx86/64机器上(Debian,CoreOS,阿尔卑斯等等),我得到了以下错误--这对我来说是有意义的,但是我不明白为什么它会在Windows上的Docker上运行,我想知道我是不是错过了一些使用x86机器作为ARM镜像的构建服务器的机会(即.在google/aws cloud/azure中)。你知道我怎么才能做到吗?
docker run -ti hypriot/rpi-node ls
standard_init_linux.go:175: exec user process caused "exec format error"发布于 2018-02-21 07:02:39
Docker for windows (和docker for mac)都使用linux虚拟机来托管容器。但是,他们使用的linux与您的Linux机之间的区别在于,他们的vm有一个名为qemu setup的内核系统,每当遇到用于外来体系结构的二进制文件(https://github.com/linuxkit/linuxkit/blob/1c552f7a9db7f0660d3c83362d241e54142323ca/pkg/binfmt/etc/binfmt.d/00_linuxkit.conf )时,它都会调用binfmt_misc。
如果您对linux机器进行了适当的配置,那么它可以用作ARM镜像的构建服务器。谷歌qemu-user-static获取一些如何设置它的想法。
注意,linuxkit vm使用'F‘标志,在配置一个典型的linux环境时,这似乎不是标准的。如果没有它,您需要将qemu二进制文件放入容器中。我不确定为什么在更多的地方使用'F‘不是标准做法(在https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=868030中这样做似乎确实有一个debian bug )
发布于 2016-09-18 04:58:25
在Windows和Mac上,docker在Linux VM下工作。所以,我认为,您的容器在Windows下启动了ARM Linux VM。但在原生Linux下,使用的是原生架构。
发布于 2016-10-12 20:01:18
"exec format error“确认您没有在正确的体系结构上运行docker镜像。我在Raspberry Pi 2(使用ARM架构)上运行x86 docker镜像时遇到了这个错误。我非常确定,当你反过来做的时候,也可能是同样的错误。
因此,正如Kulti所说,Windows/MAC必须启动了ARM Linux VM。如果您希望在Linux上使用ARM docker映像,您可能希望尝试手动运行linux docker VM。我认为你甚至可以在linux上使用"docker-machine“来实现:Docker documentation for docker-machine。(我自己没有做过,所以我不确定)
希望这能有所帮助。
https://stackoverflow.com/questions/39551573
复制相似问题