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

9

我已经安装了Docker和docker compose并进行了测试,收到了“Hello World”消息,所以一切都运行正常。

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

" no matching manifest for linux/arm64/v8 in the manifest list entries "

我有一个运行Ubuntu 22.04、ARM64的VPS服务器,具有4个CPU和24GB内存。我不知道问题出在哪里,也不知道该怎么做才能解决它!

Docker社区中的某位用户说:

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

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

sudo apt-get install qemu binfmt-support qemu-user-static
docker run --platform linux/amd64 ...

这样您可以使用AMD64版本,但仿真并不总是完美的,可能比运行与兼容映像来自容器更慢。

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

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

希望有人能帮忙,谢谢!

1个回答

23

好的,这里是解决方案

打开你的docker-compose.yml文件,如果你正在使用nano编辑器,则:

nano docker-compose.yml

现在添加以下内容:

platform: linux/amd64

对于每个 MyService

示例:

services:
   myservice:
      platform: linux/amd64
   myotherservice:
      platform: linux/amd64

然后您可以运行:

docker compose up -d

这对我来说百分之百有效,非常感谢 Ákos Takács 提供的帮助。


嗨,随意将您自己的答案标记为答案。 - Stefan
另外,你知道是什么原因导致了这个问题吗? - Stefan
5
我相信你正在使用新的MacBook,搭载M1或M2处理器,这可以从/v8看出。强制使用特定的Linux平台可能会带来其他问题。在安装Docker Desktop(或任何其他所需软件)时,请务必始终选择Apple芯片,并且不要使用Intel芯片版本。虽然这并不能总是解决问题,但在许多情况下,这可能会有所帮助。 - Hendrik

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