I understand that it is currently possible to run Ubuntu on Windows 10 in two different ways:

  1. Using the Windows Subsystem for Linux (WSL).
  2. Installing docker for Windows 10, and use a container with Ubuntu.

However, I could not find an easy to understand explanation of what are the differences between them (talking about applications), as well as advantages and disadvantages.

I found a post talking about using docker on WSL: Ubuntu via (Windows Linux Subsystem) and Docker. But I'm talking about using it directly on Windows 10. So I will appreciate any information about these two.

  • I'm no expert in any of them to write an answer, but my vote goes to Docker. The reason is that Docker implies virtualization, so things should just work. WSL on the other hand is full of bugs. It does work for benchmarks, fun, and mostly development; but if you're about to deploy something serious, this is not your choice, at least not yet. – Hi-Angel Nov 1 '17 at 22:16

Microsoft PM working on WSL & Command Line here.

WSL is primarily designed to bring one or more Linux command-line environments alongside all your favorite Windows tools. WSL runs native Linux ELF-64 binaries directly on Windows, and enables you to run your favorite Linux tools atop your Windows "host" OS, sharing the same underlying filesystem, networking, process list, etc. as the host OS.

Docker, on the other hand, provides a way to quickly & easily create a container that essentially wraps a shared (host) kernel & OS, with additional layers of extra functionality (e.g. adding Java, Ruby, MySQL, etc.). It's also easy to pcakge, deploy, and/or share your Docker containers with others if you wish.

WSL is built as a productivity tool for developers & IT Pro's who need a local, immediate, genuine Linux-compatible environment that integrates with Windows, and allows Linux tools to run alongside and/or interact with Windows files/apps.

Docker is built to enable isolated containers to be quickly, reliably, and repeatedly constructed, deployed and/or shared, but do not integrate deeply with your host machine's OS.

WSL is a local dev productivity feature, but is not suitable as a host for production workloads - that's where Docker and/or VM's shine.

To learn more about WSL, review the videos & docs here: https://aka.ms/learnwsl


That is correct. One thing that you do fail to mention is that WSL is currently rather slow in io even with a fast ssd/lots of ram/8-core xeon cpu. This is still a problem in 01/2019. I just did a ray@DESKTOP-O0MT13B:/mnt/c/Users/rayjh$ dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync on my workstation with a samsung SSD and only got 97.6 MB/s.

Running bare metal ubuntu LTS this box will get SEVERAL times that. Never mind the endless problems when you try to combine WSL with VSCODE.

I'm wiping windows 10 off of here and installing ubuntu 18.04LTS.

  • You don't need to be toxic, especially at the end. Rather, please tell us what you did to research the cause of the problems you're facing and whether they are known issues or not and if someone is working on fixing them or not. I'm sure they are though. And you don't need to uninstall windows, you just need to install hyper-v manager and quick install Ubuntu and you're set for a Linux development environment if you want to work from inside a virtual Linux Desktop. Otherwise keep using WSL and wait for your issues to be fixed. 97 MB/s is not that slow. – Paul-Sebastian Manole Feb 9 at 21:34
  • AFAIK the speed issues are related to Windows file access subsystem and a workaround is in the works. – Paul-Sebastian Manole Feb 9 at 21:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.