Hacker News new | ask | show | jobs
by kristjansson 1752 days ago
Docker Engine only runs on Linux.

Docker for Mac/Windows sets up a Linux VM using macOS/Windows native virtualization via the open-source HyperKit/VPNKit abstractions maintained by Docker-the-Company and the community. That VM runs Docker Enginer (dockerd) and all interaction (docker CLI commands, shared volumes, networking, etc.) are proxied into that VM.

1 comments

So unless I'm missing something important, why not just use docker engine directly on a wsl2 instance?
I’m not a Windows user but AIUI just running dockerd in WSL2 misses some of the volume sharing and networking niceties. Nothing that couldn’t be replicated though
Is that working? Does wsl2 provide more than a shell?
WSL2 uses a full Linux VM running under HyperV.
WSL2 can get weird when you start trying to install software with low level virtualization and file system features. YMMV. I’d use it to install apps, but I wouldn’t be confident it’d work with Docker. Even if it did initially work, eventually you’ll hit a problem for which there is no googleable answer & good luck with that.
Docker Desktop installs dockerd in a WSL2 instance these days instead of using VirtualBox so I'd assume it works pretty well now.
Current Docker on Windows detects if you have WSL2 or not, and gives you the option of just installing docker in WSL2 + configuring the Windows docker tools to manipulate the docker daemon running in WSL2.
But what does it run as PID1? I think not systemd?
Last I recall, docker desktop on windows explicitly recommended WSL2 over Hyper-V or whatever based setups.