在 arm32 上运行 x86_64 Docker 镜像

在 arm32 上运行 x86_64 Docker 镜像

情况:希望在 ODROID XU4(八核 arm32)上部署 Docker 应用程序。

问题:Docker 镜像很可能位于 x86_64 中。

问题:是否可以在 arm32 计算机上运行 x86_64 Docker 映像?如果可以,是否需要进行任何配置(例如 Qemu)?

答案1

容器不是虚拟机,而是带有额外安全措施的普通 Linux 进程。容器镜像(从概念上讲)只不过是一个可以作为文件系统挂载的 ZIP 存档。

如果您想在容器映像中运行 x86-64 软件,则需要在 x86-64 Linux 系统中运行它。如果您有不同的主机系统,则需要虚拟机。您关于使用 Qemu 的想法很好,因为它可以让您模拟不同的 CPU 架构。

您尝试做的事情也许是可行的,但并非易事。

  • 尽量坚持使用 ARM 镜像。它们确实存在。如果有疑问,请自行构建它们。
  • 最近(2019 年第二季度),一些 Docker 版本开始集成内置 Qemu 仿真,这可能有助于构建 ARM 容器。您必须安装docker buildx命令。虽然用例主要是在 x86 上构建 ARM 映像,但您也应该能够反过来使用它。

答案2

几年前我写了一篇关于 buildx 的博客文章,可能会有用。https://collabnix.com/building-arm-based-docker-images-on-docker-desktop-made-possible-using-buildx/

相关内容