Docker - 清单列表条目中没有 linux/arm64/v8 的匹配清单 - Ubuntu 22.04/arm64/v8

Ahm*_*imy 10 ubuntu docker arm64 docker-compose ubuntu-22.04

我已经安装了 Docker 和 docker compose 并对其进行了测试,我收到了 \xe2\x80\x9cHello World\xe2\x80\x9d 消息,所以一切正常

\n

之后我尝试安装 Node.js 后端,但不知道为什么我不断收到此错误消息

\n
\n

“清单列表条目中没有 linux/arm64/v8 的匹配清单\n”

\n
\n

我有一个 VPS 服务器,4 个 CPU,24 个 RAM,运行 Ubuntu 22.04,ARM64\n不知道问题是什么,我该怎么解决它!

\n

docker社区有人说:

\n
\n

该映像没有与您的 CPU 兼容的版本。您可以尝试使用 QEMU 来模拟它。

\n

https://www.stereolabs.com/docs/docker/building-arm-container-on-x86/

\n
\n
sudo apt-get install qemu binfmt-support qemu-user-static\ndocker run --platform linux/amd64 ...\n
Run Code Online (Sandbox Code Playgroud)\n
\n

通过这种方式,您可以使用 AMD64 版本,但模拟并不总是完美的,并且它可能比从兼容映像运行容器慢。

\n
\n

我安装了 qemu,但仍然不知道该如何解决清单不匹配的问题!

\n

注意:我不熟悉 docker 的东西,只是尝试安装 Node.js 后端网站,因为它需要 docker。

\n

希望有人能帮忙,谢谢!

\n

Ahm*_*imy 27

好的..这是解决方案

\n

打开你的 docker-compose.yml,如果你使用的是 nano 那么

\n
nano docker-compose.yml\n
Run Code Online (Sandbox Code Playgroud)\n

现在添加以下内容:

\n
platform: linux/amd64\n
Run Code Online (Sandbox Code Playgroud)\n

对于每个我的服务

\n

例子:

\n
services:\n   myservice:\n      platform: linux/amd64\n   myotherservice:\n      platform: linux/amd64\n
Run Code Online (Sandbox Code Playgroud)\n

然后你可以运行:

\n
docker compose up -d\n
Run Code Online (Sandbox Code Playgroud)\n

这对我来说 100% 有效,非常感谢\xc3\x81kos Tak\xc3\xa1cs的帮助。

\n

  • 我相信您使用的是带有 /v8 指示的 M1 或 M2 处理器的新 MacBook。仅仅强制使用特定的 Linux 平台可能会出现一些其他问题。安装 Docker Desktop(或您可能需要的任何其他软件)时,请务必始终选择 Apple 芯片,并且不要使用 Intel 芯片版本。不会总是解决问题,但在很多地方这可能会有所帮助。 (5认同)