树莓派Docker错误:standard_init_linux.go:178:exec用户进程导致“exec格式错误”

19
我已按照官方指南在Rapsbian上安装了Docker(即运行curl -sSL https://get.docker.com | sh),但我无法运行hello-world示例(我还尝试了其他示例,但都没有成功)。这是我收到的错误信息:
pi@raspberrypi2:~ $ docker run hello-world
standard_init_linux.go:178: exec user process caused "exec format error"

我的环境是Raspberry Pi 2 Model B,使用Raspbian GNU/Linux 8(jessie)和Docker版本17.03.0-ce,构建版本为60ccb22。

有关问题的任何提示或可能解决问题的方向?

非常感谢!

2个回答

34

树莓派使用的是 ARM 而非 x86_64 处理器,因此只能运行为该架构创建的映像。尝试在 docker hub 上搜索 ARM 或 ARMv7。我知道有适用于 ARM 的 Debian 映像,但肯定还有其他映像。

根本问题在于 ARM 使用的二进制格式与大多数桌面和服务器系统所使用的 x86_64 架构不兼容。


1
你说得对,谢谢!在这个链接(https://hub.docker.com/u/armhf/)中有一些有用的官方镜像(目前处于实验阶段),适用于ARM架构,包括“hello-world”示例。 - Pablo EM
截至2019年11月,Docker具备同时为多种架构构建的功能:https://mirailabs.io/blog/multiarch-docker-with-buildx/ - dshepherd

4

在你的文件开头添加:

#!/bin/bash 

对我有效


7
@Kairat Koibagarov,您是指要在文件的开头添加什么...哪个文件? - Kendall
您可能已经在Dockerfile中将脚本文件放置为CMD。如果是这样,您可以在此脚本文件的开头添加以下内容以告诉系统如何读取它(这里是一个shell脚本)。 - bachinblack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接