nit*_*ite 6 linux arm raspberry-pi docker
我能够在 Windows(64 位)上的 Docker 中运行 ARM 映像(例如 hypriot/rpi-node),但在我尝试过的所有 linux x86/64 机器(Debian、CoreOS、Alpine 等)中,我得到以下信息错误 - 这对我来说很有意义,但我不明白为什么它会在 Windows 上的 Docker 中运行,我想知道我是否错过了一些使用 x86 机器作为 ARM 映像构建服务器的机会(即 google 中的/aws 云/天蓝色)。我有什么想法可以做到吗?
docker run -ti hypriot/rpi-node ls
standard_init_linux.go:175: exec user process caused "exec format error"
Run Code Online (Sandbox Code Playgroud)
Windows 版 Docker(和 Mac 版 docker)都使用 Linux 虚拟机来托管容器。然而,他们使用的 Linux 虚拟机和你的 Linux 机器之间的区别在于,他们的虚拟机有一个名为 binfmt_misc 设置的内核系统,每当遇到外部架构的二进制文件时就会调用 qemu ( https://github.com/linuxkit/ linuxkit/blob/1c552f7a9db7f0660d3c83362d241e54142323ca/pkg/binfmt/etc/binfmt.d/00_linuxkit.conf)
如果您要正确配置您的 Linux 计算机,它可以用作 ARM 映像的构建服务器。谷歌qemu-user-static搜索一些关于如何设置它的想法。
请注意,linuxkit 虚拟机使用“F”标志,在配置典型的 Linux 环境时这似乎不是标准的。如果没有它,您需要将 qemu 二进制文件放入容器中。我不确定为什么在更多地方使用“F”不是标准做法(似乎确实存在 debian bug https://bugs.debian.org/cgi-bin/bugreport.cgi?错误=868030)
在 Windows 和 Mac 上,docker 在 Linux VM 下工作。所以,我认为,Windows 下的容器启动了 ARM Linux VM。但在原生Linux下使用的是原生架构。
| 归档时间: |
|
| 查看次数: |
4673 次 |
| 最近记录: |