roadmap icon indicating copy to clipboard operation
roadmap copied to clipboard

[Docker for windows][Docker ARM] Support amd64 based images on ARM with Prism emulation

Open lHersey opened this issue 1 year ago • 3 comments

Tell us about your request I'm not an expert on this part, but I know that there is an option for ARM devices on mac (m1,m2,m3) to use rosetta to run intel based images (This helped a lot of mssql users)

Is it possible to use the windows emulation layer (PRISM) to try something similar?

Which service(s) is this request for? Docker Desktop (ARM) for Windows

Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard? Lack of ARM compatible images

Are you currently working around the issue? I haven't found any workaround for this

Additional context Current error trying to run linux/amd64 images on linux/arm64/v8 devices:

Invalid mapping of address 0x2aaaad74d000 in reserved address space below 0x40000000000

lHersey avatar Jul 05 '24 03:07 lHersey

Hello @lHersey,

You should be able to run amd64 images on Docker Desktop for Windows on Arm. See https://docs.docker.com/build/building/multi-platform/#qemu.

Does the following work?

docker run -it --rm --platform linux/amd64 alpine

doringeman avatar Jul 12 '24 13:07 doringeman

Not necessarily, there seem to be some images that are incompatible with QEMU emulation (see https://github.com/microsoft/mssql-docker/issues/668)

Rosseta on M1/M2/M3 supports more images than QEMU, so I would like to know if the same can be said of PRISM for Windows.

That was fixed with Rosseta emulation. it would be better to have native arm support from the image provider, but since Rosseta worked I thought the same could be applied to windows on arm.

Right now, there is no way to get MSSQL on windows on arm (Just the azure-edge version but that doesn't fit everybody needs)

lHersey avatar Jul 12 '24 16:07 lHersey

Hello @lHersey,

You should be able to run amd64 images on Docker Desktop for Windows on Arm. See https://docs.docker.com/build/building/multi-platform/#qemu.

Does the following work?

docker run -it --rm --platform linux/amd64 alpine

This helps build multi-platform images. But it does not address the need to run amd64 images on arm64 hardware. He need Prism for that, much like how Rosetta supports this on Mac OS.

ben-page-csat avatar Aug 22 '24 15:08 ben-page-csat