在Apple M1芯片上运行docker amd64镜像而无需重新构建

3

最近我购买了一台搭载M1芯片的新款MacBook Pro电脑。 我尝试运行一些Docker镜像,但是出现了一些错误:

$ docker pull mariadb:5.5
5.5: Pulling from library/mariadb
no matching manifest for linux/arm64/v8 in the manifest list entries

$ docker run custom-mariadb-build-based-5.5:latest
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
runtime: failed to create new OS thread (have 2 already; errno=22)

我还有其他(非MariaDB)镜像也存在同样的问题。使用--platform=linux/amd64命令运行它们并没有任何区别(除了消除警告)。

我知道这里已经有类似的问题了。它们有重新构建新架构镜像的答案。然而,当前不可能实现这一点,而且我也需要具体版本的MariaDB,但这个版本尚不支持arm64。

我猜我不是唯一遇到这个问题的人,我想知道其他人是如何解决的。我已经尝试过使用colima或rancher进行虚拟化,但这种方法没有奏效。


这回答解决了你的问题吗?如何在arm64主机平台上运行amd64 docker映像 - Siguza
1
我已经安装了Rosetta2,但似乎没有改变任何东西: $ docker run --platform=linux/amd64 mariadb:5.5 runtime: failed to create new OS thread (have 2 already; errno=22) fatal error: newosproc - user969039
这是一个已知问题:https://github.com/linuxkit/linuxkit/issues/1348 - Eric
2个回答

0

运行以下命令,我已经测试通过。

docker run --privileged --rm tonistiigi/binfmt --install amd64 docker run -it --platform=linux/amd64 --name fdb_non_root_test


0

我建议您提供一个VPS服务,以便与docker一起使用。在这些问题被苹果或docker解决之前。


1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community
1
我很感谢社区的评论,但这就像当有人在扫地时你说“这里有一个小点你没扫到”...任何人都会把扫帚给你。所以在这里也是一样的:感谢建议,但最好自己去做而不是给出建议。我知道这是一条自动消息,但有一个人已经决定让机器人发送这条消息,因为需要更多信息。 - Eric

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