Apple M1 计算机上的 Docker amd64 警告

Oam*_*nji 38 docker apple-m1

这个警告是什么:

在此输入图像描述

我启用了 docker compose V2 并将其设置export DOCKER_DEFAULT_PLATFORM=linux/amd64为环境变量,因为我相信这可以实现允许 docker 映像在 Apple M1 芯片上运行的模拟。

我是 docker 新手,想知道这是否意味着模拟正在工作,或者我是否没有正确配置某些内容?

Dan*_*owe 30

该警告意味着 amd64 映像性能较差,有时还会出现崩溃行为。这是 Apple Silicon 芯片上 Docker + qemu 的一个已知问题。因此,Docker 建议尽可能避免使用 amd64 镜像。

\n

https://docs.docker.com/desktop/mac/apple-silicon/

\n
\n

并非所有映像都适用于 ARM64 架构。您可以添加 --platform linux/amd64 以在模拟下运行 Intel 映像。特别是,mysql 映像不适用于 ARM64。您可以使用 mariadb 映像来解决此问题。

\n

然而,尝试在模拟下的 Apple 芯片机器上运行基于 Intel 的容器可能会崩溃,因为 qemu 有时无法运行容器。此外,文件系统更改通知 API (inotify) 在 qemu 模拟下不起作用。即使容器在模拟下正确运行,它们也会比本机等效容器更慢并且使用更多内存。

\n

总而言之,在基于 Arm 的机器上运行基于 Intel 的容器应该仅被视为 \xe2\x80\x9cbest尽力\xe2\x80\x9d。我们建议尽可能在 Apple 硅机器上运行 arm64 容器,并鼓励容器作者生产其容器的 arm64 或多架构版本。随着越来越多的镜像被重建以支持多种架构,我们预计这个问题会随着时间的推移而变得不那么常见。

\n
\n

  • @Sammy65 使用多平台图像来获取本机平台是默认设置,因此要做到这一点,您只需取消设置已设置的 ENV 变量即可。问题是,并非 Docker Hub 上发布的每个镜像都有 arm64 版本。对此你无能为力;您可以使用模拟器碰碰运气,或者如果没有可用的软件,您也可以尝试构建自己的arm64 版本的软件。 (2认同)