Windows-Containers icon indicating copy to clipboard operation
Windows-Containers copied to clipboard

Windows Arm64 support

Open Alovchin91 opened this issue 7 months ago • 1 comments

It's May 2025. Copilot+ PCs have been out for almost a year. They're proper developer machines. I have actually been using Windows Arm64 as my daily driver developer OS since the end of 2021, but let's pretend it happened only a year ago.

Container support is a glaring hole on Windows Arm64. Windows Server builds on Arm64 have existed for years, even though Microsoft pretends that it's not the case.

The time has come. Let's start with Nano Server at least.

Alovchin91 avatar May 03 '25 10:05 Alovchin91

Thank you for creating an Issue. Please note that GitHub is not an official channel for Microsoft support requests. To create an official support request, please open a ticket here. Microsoft and the GitHub Community strive to provide a best effort in answering questions and supporting Issues on GitHub.

github-actions[bot] avatar May 03 '25 10:05 github-actions[bot]

Thanks, @Alovchin91 , for reaching out. We support both Nano Server (mcr.microsoft.com/windows/nanoserver:ltsc2025-arm64) and Server Core (mcr.microsoft.com/windows/servercore:ltsc2025-arm64) container images on ARM64 devices running Windows 11 24H2.

akarshm avatar May 28 '25 17:05 akarshm

Hi @akarshm, thank you for the response! Are you sure you're not confusing arm64 and amd64 though? The arm64 ones are not listed on https://hub.docker.com/r/microsoft/windows-nanoserver.

Alovchin91 avatar May 29 '25 01:05 Alovchin91

Hi @Alovchin91 , you can find arm64 tags here https://mcr.microsoft.com/v2/windows/nanoserver/tags/list

akarshm avatar May 29 '25 20:05 akarshm

@akarshm Indeed! That's great news, thank you!

Alovchin91 avatar May 30 '25 10:05 Alovchin91

@akarshm , great to see the images being available! Could you please guide me how I can use them? Docker Desktop for Windows-arm64 in the latest 4.50.0 version does not seem to support Windows containers, and its installation doesn't contain the dockerd.exe.

maikschulze avatar Nov 09 '25 15:11 maikschulze

Docker Desktop does not support Windows ARM at the moment

tfenster avatar Nov 09 '25 17:11 tfenster

Thank you for confirming @tfenster . Do you know any other options, e.g. containerd or some Windows component that one could use? Or will we just have to wait a bit longer for the images to become useful?

maikschulze avatar Nov 10 '25 07:11 maikschulze

Oh my! This is working and just hidden in plain sight!

I compiled the docker.exe client and dockerd.exe daemon myself. As noted in the repository cross-arch compilation on Windows is not supported. So this must be done on a Windows-ARM64 machine:

git clone https://github.com/moby/moby.git
go install github.com/tc-hib/go-winres@latest
./hack/make.ps1 -Client -Daemon

Then, you can instantiate the above-mentioned images docker run --rm -it mcr.microsoft.com/windows/servercore:ltsc2025-arm64 powershell

Is there a particular reason this is not noted anywhere? This is huge news!

maikschulze avatar Nov 10 '25 08:11 maikschulze

That is something for Docker and Microsoft to comment on 😊

tfenster avatar Nov 10 '25 13:11 tfenster

@maikschulze I believe you could simply take Docker CE binaries for x64 and run them emulated. They would use Windows Containers / Hyper-V anyway so it shouldn't matter if they're compiled to native ARM64 or not. But if they can be compiled to ARM64, that's of course even better 🙂

Alovchin91 avatar Nov 10 '25 13:11 Alovchin91

That is something for Docker and Microsoft to comment on 😊

tfenster avatar Nov 10 '25 13:11 tfenster

Do you know any other options, e.g. containerd or some Windows component that one could use?

You should also be able to build nerdctl and containerd for Windows ARM64, check this out: https://github.com/snickler/containerd/tree/refs/heads/dev/snickler/win-arm64

Alovchin91 avatar Nov 10 '25 21:11 Alovchin91

Thank you, @Alovchin91 I will give containerd a try in a few days! It didn't even cross my mind that the emulation for docker binaries may just work.

maikschulze avatar Nov 11 '25 10:11 maikschulze