Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please support Docker Desktop (WSL2) on Windows on ARM #91

Open
dennisameling opened this issue May 13, 2020 · 125 comments
Open

Please support Docker Desktop (WSL2) on Windows on ARM #91

dennisameling opened this issue May 13, 2020 · 125 comments
Assignees
Labels
community_new New idea raised by a community contributor docker_desktop Improvements or additions to Docker Desktop

Comments

@dennisameling
Copy link

dennisameling commented May 13, 2020

Tell us about your request
Devices that run Windows on ARM (arm64), like the Microsoft Surface Pro X, are capable of running WSL2 starting with the Windows 10 May 2020 (2004) update. Currently, Docker Desktop for Windows requires a x64 PC, so it's not possible to run Docker Desktop on these devices.

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

Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
I'm trying to get Docker Desktop to work on my Windows on ARM (arm64) device with the WSL2 backend, but because it's x64-only, there seems to be no way for me to start using it.

Are you currently working around the issue?
Windows on ARM supports emulation for 32-bit/x86 apps, but since Docker Desktop is a x64-only app, we can't benefit from emulation and seem to have absolutely no way to get Docker Desktop to run on these devices.

The only options at the moment are to remote SSH or RDP into a machine that has Docker installed and do development on there, or run Docker within WSL2 using the regular Linux installation instructions.

Additional context
WSL2 general availability announcement: https://devblogs.microsoft.com/commandline/wsl2-will-be-generally-available-in-windows-10-version-2004/

@justincormack
Copy link
Member

justincormack commented May 13, 2020

Hi, Arm lent us a Windows 10 machine a while back and I did a little testing. Docker runs fine on Arm64 WSL2 if you install it yourself (via https://get.docker.com/ ), which is great, once you have updated to a Windows version that supports WSL2.

Building Docker Desktop has a bunch of issues around software we use and available toolchains, and as you say lack of emulation for 32 bit x86. This situation should get better over time as the Windows arm64 ecosystem gets better and we update some dependencies. If other people are interested please let us know.

@dennisameling
Copy link
Author

That's great to know, thanks for the info! Will try that right after the stable version of Windows 10 2004 is released (rumor says that'll be on May 28) 🚀

@SQLvariant
Copy link

I am extremely interested in this and would love to use it to build my SQL Server containers!

@nebuk89 nebuk89 added the docker_desktop Improvements or additions to Docker Desktop label May 18, 2020
@taxilian
Copy link

taxilian commented Jun 6, 2020

I have docker installed in wsl 2 but without systemd it's hard to start :-/ would sure love to have this.

@jeffthompsonsd
Copy link

+1 for getting docker desktop running on win10 arm64. I would love this.

@dsmk
Copy link

dsmk commented Jul 7, 2020

+1 for docker desktop running on win10 arm64.

I did manage to get docker-ce running using a script inside Ubuntu 20.04 (downloaded from https://get.docker.com ). That is working well enough for now but native Docker desktop would integrate better with other stuff (for example, Visual Studio Code extensions).

@goodwill
Copy link

@justincormack How do you actually run it? I can install fine with the script but I cant start the docker service inside WSL2 ubuntu 20.04

time="2020-07-24T13:14:41.737173200+08:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
time="2020-07-24T13:14:41.749458000+08:00" level=info msg="[graphdriver] using prior storage driver: overlay2"
time="2020-07-24T13:14:41.773593300+08:00" level=warning msg="Your kernel does not support cgroup memory limit"
time="2020-07-24T13:14:41.773643500+08:00" level=warning msg="Unable to find cpu cgroup in mounts"
time="2020-07-24T13:14:41.773660200+08:00" level=warning msg="Unable to find blkio cgroup in mounts"
time="2020-07-24T13:14:41.773672500+08:00" level=warning msg="Unable to find cpuset cgroup in mounts"
time="2020-07-24T13:14:41.773684200+08:00" level=warning msg="mountpoint for pids not found"
time="2020-07-24T13:14:41.773901200+08:00" level=info msg="Loading containers: start."
time="2020-07-24T13:14:41.839851100+08:00" level=warning msg="Running iptables --wait -t nat -L -n failed with message: `iptables v1.8.4 (legacy): can't initialize iptables table `nat': Table does not exist (do you need to insmod?)\nPerhaps iptables or your kernel needs to be upgraded.`, error: exit status 3"
time="2020-07-24T13:14:43.126110200+08:00" level=info msg="stopping event stream following graceful shutdown" error="<nil>" module=libcontainerd namespace=moby
time="2020-07-24T13:14:43.127763100+08:00" level=info msg="stopping event stream following graceful shutdown" error="context canceled" module=libcontainerd namespace=plugins.moby
time="2020-07-24T13:14:43.127776700+08:00" level=info msg="stopping healthcheck following graceful shutdown" module=libcontainerd
failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables -t nat -N DOCKER: iptables v1.8.4 (legacy): can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

@taxilian
Copy link

After installing docker on wsl 2 ubuntu 20.04 on ARM (surface pro x) I start it by running in WSL:

sudo /etc/init.d/docker start

works fine. I do really wish that docker desktop was supported, though.

@goodwill
Copy link

I tried and no this doesn't work - same error, so I don't think this is even usable for most people.

@goodwill
Copy link

It actually looks like something to do with the iptables behaviour in WSL2, I wonder anyone here got clue on how to fix it? Looks related to this? kubernetes-sigs/kind#741

@goodwill
Copy link

goodwill commented Aug 1, 2020

@dsmk May I know if you come across any issue? Are you changing the kernel somehow to get this working?

@Alovchin91
Copy link

Alovchin91 commented Aug 19, 2020

+1 for Docker Desktop on Windows on Arm64.

I'm not sure if it's possible to run Windows containers at the moment (maybe in Insider builds which support Hyper-V on Arm64), but WSL 2 is officially supported on Arm64, so this is already a good reason to have Docker running on it.

Now that Visual Studio Code also runs natively on Windows on Arm64, one can build a proper development environment with WSL 2 on devices like Surface Pro X.

@jamesthurley
Copy link

jamesthurley commented Sep 14, 2020

Another vote for Docker Desktop on ARM64, as a Surface Pro X user.

@zacfpearson
Copy link

+1 for docker desktop running on win10 arm64.

@just-Bri
Copy link

I'll throw a +1 on here.

@dariobig
Copy link

+1

1 similar comment
@AndrewCowle
Copy link

+1

@justincormack
Copy link
Member

@Alovchin91 Windows containers are not currently supported on Arm Windows. You should ask Microsoft to support that, currently there are no base images available for example.

@Alovchin91
Copy link

Alovchin91 commented Oct 7, 2020

@justincormack I don't really care about Windows containers tbh, running Linux containers on Windows on ARM would have been good enough 🙂 I know this can be done from WSL 2, but it would be nice to see Docker Desktop supporting it.

@taxilian
Copy link

taxilian commented Oct 7, 2020

Give us WSL 2 support with docker desktop and we'll be happy =]

@rfay
Copy link

rfay commented Oct 7, 2020

Golang doesn't yet support building windows/arm64 binaries, and I think golang is a big part of docker desktop, so this will probably have to wait a while yet. Hoping for windows/arm64 in v1.16 of golang, which is early 2021.

@Alovchin91
Copy link

Tracking issue for golang: golang/go#36439

@just-Bri
Copy link

just-Bri commented Oct 7, 2020

Just wanted to drop in and say: I've been running docker inside of WSL2 rather than using Docker Desktop and it's been great. (This is on a a Surface Book 3). I actually prefer it to Docker Desktop on Windows, I do have to manually start the docker service, but the performance is actually much better.

I'll be trying this on ARM once I get the new Pro X with the SQ2. Even if 64 bit support is added via emulation there's no way it could compete with just running Docker natively on ARM via WSL2.

@gnubyte
Copy link

gnubyte commented Oct 24, 2020

+1 for Windows ARM 64 in general (Samsung Galaxy Book S)

@awakecoding
Copy link

+1 for Windows on ARM (Surface Pro X). I know this could take a while, so if all we could get for now is a way to get the Docker CLI locally, but the real Docker host controlled remotely, I'd be happy. The only thing that wouldn't work well with a remote Docker host is bind mounts, but there's not much that can be done about that.

@christophermclellan christophermclellan removed their assignment Aug 24, 2023
@Adz5156
Copy link

Adz5156 commented Nov 5, 2023

Hi all,
Any news/updates on this one?
Would really love to see docker desktop on the Arm64 devices.
Thanks

@snickler
Copy link

snickler commented Jan 3, 2024

Hi @christophermclellan @bryansh - Would love to hear of anything available regarding status of the effort to make this happen, and anything that the community could help out with (if possible). :)

@bryansh
Copy link

bryansh commented Jan 4, 2024

Hi @snickler - appreciate your excitement for Docker on Windows on ARM 🙂

While I'm not able to share a targeted Docker Desktop release at this time; I will say that this item is near the top of our roadmap and should be In Progress soon. I would expect support by the end of Q2 2024. Cheers (and Happy New Year)!

@snickler
Copy link

snickler commented Jan 4, 2024

Hi @snickler - appreciate your excitement for Docker on Windows on ARM 🙂

While I'm not able to share a targeted Docker Desktop release at this time; I will say that this item is near the top of our roadmap and should be In Progress soon. I would expect support by the end of Q2 2024. Cheers (and Happy New Year)!

This is the best news I've heard thus far! Thanks so much!

@sirredbeard
Copy link

@bryansh Great news! Quick question: Will Docker Desktop on Windows on ARM support both Linux and Windows Containers?

@bplasmeijer
Copy link

bplasmeijer commented Jan 4, 2024

@bryansh Great news! Quick question: Will Docker Desktop on Windows on ARM support both Linux and Windows Containers?
Awesome, not sure how it will be done, but I opt-in for hybrid first, and no context switch on docker desktop:
image
Few old issues items from me:
image
I want to be able to run, and build Linux and Windows (LCOW) containers simultaneously. #79
docker/for-win#6311 (comment)

@rvanlaak
Copy link

rvanlaak commented Jan 9, 2024

Thanks for the update @bryansh ! Given the recent exclusive that the Microsoft Surface Laptop 6 is also going to be released with ARM chips, it might be worth contacting them for a “CADMUS” dev machine to increase the success rate on adding native Windows support for ARM as new and exciting architecture to Docker Desktop.

We are reevaluating our development machines vendor soon, and that ARM Surface Laptop 6 is on the list as potential stretch goal. Anything that's worth sharing with us in that regard? 👀

@bryansh
Copy link

bryansh commented Jan 10, 2024

@sirredbeard - 👋 Both Windows and Linux containers are expected to be supported; we could discover some blocking technical issue that precludes supporting both...but haven't thus far.

@bplasmeijer - 👋 Thanks for the poke on docker/for-win#6311. No updates to share at this time, but I can assure you that conversations around context switching are ongoing. I will update 6311 when we're able to make a commitment.

@rvanlaak - 👋 When enabling Docker Desktop on Windows ARM, we will be working to ensure it works fantastically on all Windows ARM devices.

@pbo-linaro
Copy link

@bryansh One of the blocking point to support Windows containers is the lack of availability of windows base images. Alas, only Microsoft can decide to start distributing those. Is it something you are aware of and discussing with MS?

@david-nordvall
Copy link

Great news, @bryansh, that Docker Desktop might be released for Windows on ARM during 2024.

I am one of the few developers actually trying to do work on a Windows on ARM device today (Surface Pro 9) by running Docker Engine in WSL2 (using VS Code's Dev Containers extension to set up a developer container in Docker). Currently, however, there are issues which makes running anything intense on WSL2 (such as Docker Engine, compilers, etc.) a non starter (see WSL issues 10677 and 9454 for more information). It would be really interesting to see if you encounter these problems as well and if you are able to work around them!

@debarghyab
Copy link

With growing popularity of ARM based devices running Windows, this would be very helpful. Looking forward to this.

@jaysonvalentino-ppm
Copy link

I'm looking forward to this. I'm using a Mac with Apple Silicon, and I frequently use a Windows VM for development with Parallels. It would be amazing to have one machine with both systems.

@dekaiser123
Copy link

Another vote from me, wsl2 backend is a necessity for docker's k8s to run on windows. I've also heard Mac with Apple Silicon need to put some effort to make mac's filesystem i/o to be closer bare metal so that has kind put me off going down the mac route for development.

@Frankdwu
Copy link

Hi @bryansh
Can we get ARM native docker?
From following it says "Arm Native Docker tools for Windows are now available.  "
https://blogs.windows.com/windowsdeveloper/2024/05/21/unlock-a-new-era-of-innovation-with-windows-copilot-runtime-and-copilot-pcs/

@javaniecampbell
Copy link

javaniecampbell commented May 23, 2024

Hi everyone in this build session at 27:33 & bryansh

https://build.microsoft.com/en-US/sessions/9d806202-be61-4b5d-ba0d-59ecfcaf0482?source=sessions

Official Docker Desktop Annoucement from the CEO, Justin Cormack and it's available on v4.30.0 .

However, I am on Windows DevKit if I installed via winget or official docker website, the download button or source still referencing the x86_x64 or amd64 architecture; See the image below:

image

Official Installer partial runs due to emulation of x86_x64 or amd64 architecture but if you open Task manager, you'll find that is is running on amd64 or x86_x64 architecture:

image but this is as far as i could get it failed as something:

image

Until the official release installer gets updated this is as far as we can get, I'll stick with my docker engine setup I have for now

F.Y.I. - There is an installer at the following for ARM but it still buggy same issue exists:

https://desktop.docker.com/win/main/arm64/149282/Docker%20Desktop%20Installer.exe

@isaali93
Copy link

isaali93 commented May 23, 2024

Hi everyone in this build session at 27:33 & bryansh

https://build.microsoft.com/en-US/sessions/9d806202-be61-4b5d-ba0d-59ecfcaf0482?source=sessions

Official Docker Desktop Annoucement from the CEO, Justin Cormack and it's available on v4.30.0 .

However, I am on Windows DevKit if I installed via winget or official docker website, the download button or source still referencing the x86_x64 or amd64 architecture; See the image below:

image

Official Installer partial runs due to emulation of x86_x64 or amd64 architecture but if you open Task manager, you'll find that is is running on amd64 or x86_x64 architecture:

image but this is as far as i could get it failed as something:

image

Until the official release installer gets updated this is as far as we can get, I'll stick with my docker engine setup I have for now

F.Y.I. - There is an installer at the following for ARM but it still buggy same issue exists:

https://desktop.docker.com/win/main/arm64/149282/Docker%20Desktop%20Installer.exe

The ARM installer seems to work fine on Lenovo X13s, though I haven't run anything except a hello world container to test it out.

@bryansh
Copy link

bryansh commented May 23, 2024

Hi @bryansh Can we get ARM native docker? From following it says "Arm Native Docker tools for Windows are now available.  " https://blogs.windows.com/windowsdeveloper/2024/05/21/unlock-a-new-era-of-innovation-with-windows-copilot-runtime-and-copilot-pcs/

Build available here: https://desktop.docker.com/win/main/arm64/149282/Docker%20Desktop%20Installer.exe

@jasonrandrews
Copy link

Installer is x64 and felt pretty slow, but once installed everything is arm64 and running well.

@david-nordvall
Copy link

david-nordvall commented May 24, 2024

Hi @bryansh Can we get ARM native docker? From following it says "Arm Native Docker tools for Windows are now available.  " https://blogs.windows.com/windowsdeveloper/2024/05/21/unlock-a-new-era-of-innovation-with-windows-copilot-runtime-and-copilot-pcs/

Build available here: https://desktop.docker.com/win/main/arm64/149282/Docker%20Desktop%20Installer.exe

@bryansh That's super! I haven't been able to test it but were you able to solve the problems reported in WSL kernel issues 11274, 10667 and 9454 (basically that WSL2 on arm hangs whenever it has to do anything complex)?

@andriysavin
Copy link

andriysavin commented May 24, 2024

Hi @bryansh Can we get ARM native docker? From following it says "Arm Native Docker tools for Windows are now available.  " https://blogs.windows.com/windowsdeveloper/2024/05/21/unlock-a-new-era-of-innovation-with-windows-copilot-runtime-and-copilot-pcs/

Build available here: https://desktop.docker.com/win/main/arm64/149282/Docker%20Desktop%20Installer.exe

After installing, most of the processes are Arm64, but Docker Desktop Service is still x64.

image

@alorne
Copy link

alorne commented May 24, 2024

I don't know if this is relevant or not, I'll be trying the arm64 build above later today, but the official Docker announcement says it is the 4.31 version that supports arm64 and the current download is 4.30 (as of last night when I tried).

https://www.docker.com/blog/announcing-docker-desktop-support-for-windows-on-arm/

@mbalcerzyk
Copy link

mbalcerzyk commented May 24, 2024 via email

@mbalcerzyk
Copy link

mbalcerzyk commented May 24, 2024 via email

@vtkacenko
Copy link

Great progress with publishing Docker Desktop for Windows ARM64!

Was quite excited until I realized that Windows container daemon is disabled for this installation.

Any plans on adding support for windows container daemon?

@doringeman
Copy link

Hey @vtkacenko, Windows Containers are not supported yet on Windows on Arm.
See microsoft/Windows-Containers#224.

@klpatel
Copy link

klpatel commented Aug 30, 2024

I tried different versions of both wsl and Docker desktop on Microsoft Surface Pro ARM54 machine with windows 11 home, finally Desktop Docker for Windows ARM(Beta) and Microsoft.WSL_2.2.4.0_x64_ARM64 made docker working for me.
I need to uninstall wsl from windows features though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
community_new New idea raised by a community contributor docker_desktop Improvements or additions to Docker Desktop
Projects
Status: Investigating
Development

No branches or pull requests