【问题标题】:how to run arm64 docker images on amd64 host platform如何在 amd64 主机平台上运行 arm64 docker 镜像
【发布时间】:2021-08-06 02:52:35
【问题描述】:
尝试将在我的 mac m1 上创建的映像运行到 Docker 游乐场网站时出现以下错误
WARNING: The requested image's platform (linux/arm64) does not match the detected host platform (linux/amd64) and no specific platform was requested
有没有办法让它成为可能?
【问题讨论】:
标签:
linux
docker
ubuntu
apple-m1
【解决方案1】:
您能与我们分享一下您是如何建立自己的形象的吗?
您可以build multi arch images from a single host,但您需要确保在构建时将正确的标志传递给 Docker。在您的情况下,您需要定位 linux/amd64 以使其在您定位的主机上运行。
上面文章中的例子就是这样,使用docker buildkit:
~/test ❯❯❯ docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t adamparco/demo:latest --push .
或者,如果您还没有启用 buildkit(我认为它现在是 docker 桌面的默认设置),您可以通过 docker manifests 使用旧方式,根据此示例:
# AMD64
$ docker build -t your-username/multiarch-example:manifest-amd64 --build-arg ARCH=amd64/ .
$ docker push your-username/multiarch-example:manifest-amd64
# ARM32V7
$ docker build -t your-username/multiarch-example:manifest-arm32v7 --build-arg ARCH=arm32v7/ .
$ docker push your-username/multiarch-example:manifest-arm32v7
# ARM64V8
$ docker build -t your-username/multiarch-example:manifest-arm64v8 --build-arg ARCH=arm64v8/ .
$ docker push your-username/multiarch-example:manifest-arm64v8