Docker在Mac上运行armv7映像

时间:2020-10-29 11:35:56

标签: macos docker x86-64

我的Mac使用x86_64硬件,从理论上讲,我不应该运行为armv7构建的docker映像。

但是

Docker documentation说:

Docker Desktop提供了binfmt_misc多架构支持,这意味着您可以运行用于不同Linux架构的容器,例如arm,mips,ppc64le甚至是s390x。

这不需要在容器本身中进行任何特殊配置,因为它使用来自Docker for Mac VM的qemu-static。

并且我还在阅读this one之类的文章,它们证实了上述
docker run -it --rm arm32v7/debian /bin/bash

在Mac上应该可以运行,尽管它对我不起作用:

Unable to find image 'arm32v7/debian:latest' locally
latest: Pulling from arm32v7/debian
Digest: sha256:9b61eaedd46400386ecad01e2633e4b62d2ddbab8a95e460f4e0057c612ad085
Status: Image is up to date for arm32v7/debian:latest
docker: Error response from daemon: image with reference arm32v7/debian was found but does not match the specified platform cpu architecture: wanted: amd64, actual: arm.
See 'docker run --help'.

我想知道我是否误会了什么。

Docker桌面社区2.4.2.0(48975)Edge
Docker版本20.10.0-beta1,内部版本ac365d7
MacOS版本10.15.7(19H2)

注意:在研究我尝试使用qemu并运行的主题时:
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
可能会干扰默认行为。

1 个答案:

答案 0 :(得分:1)

我认为我的问题与this moby issue有关。

此修复非常简单,因为我只需要添加^\s\}{1}\s--platform来添加linux/arm自变量:
linux/arm/v7
已经成为
docker run -it --rm arm32v7/debian /bin/bash

和瞧!

docker run --platform=linux/arm  -it --rm arm32v7/debian /bin/bash
相关问题