gpt4 book ai didi

linux - 可以在 Windows 上的 Docker 中运行 ARM/rpi 图像,但不能在 linux 上运行

转载 作者:IT王子 更新时间:2023-10-29 01:25:51 28 4
gpt4 key购买 nike

我能够在 Windows(64 位)的 Docker 中运行 ARM 镜像(例如 hypriot/rpi-node),但在我尝试过的所有 linux x86/64 机器(Debian、CoreOS、Alpine 等)中我收到以下错误 - 这对我来说很有意义,但我不明白为什么它会在 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"

最佳答案

Windows 版 Docker(和 Mac 版 Docker)都使用 Linux 虚拟机来托管容器。然而,他们使用的 linux vm 和你的 linux 机器之间的区别是他们的 VM 有一个名为 binfmt_misc setup 的内核系统,当它遇到用于外国架构的二进制文件时调用 qemu (https://github.com/linuxkit/linuxkit/blob/1c552f7a9db7f0660d3c83362d241e54142323ca/pkg/binfmt/etc/binfmt.d/00_linuxkit.conf)

如果您适本地配置您的 Linux 机器,它可以用作 ARM 镜像的构建服务器。 Google qemu-user-static 了解如何设置它的一些想法。

请注意,linuxkit 虚拟机使用“F​​”标志,这在配置典型的 linux 环境时似乎不是标准的。没有它,您需要将 qemu 二进制文件放入容器中。我不确定为什么在更多地方使用“F”不是标准做法(似乎确实有一个 debian 错误 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=868030 )

关于linux - 可以在 Windows 上的 Docker 中运行 ARM/rpi 图像,但不能在 linux 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39551573/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com