The Windows Subsystem for Linux (WSL) lets developers run a GNU/Linux environment -- including most command-line tools, utilities, and applications -- directly on Windows, unmodified, without the overhead of a traditional virtual machine or dual-boot setup.
WSL 2 is a new version of the Windows Subsystem for Linux architecture that powers the Windows Subsystem for Linux to run ELF64 Linux binaries on Windows. Its primary goals are to increase file system performance, as well as adding full system call compatibility.
Install WSL2 on Windows
For the full instructions to install WSL2 on windows, refer to this link
Long story short, try the below code snippet in Windows Powershell:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart wsl --set-default-version 2 Download desired Linux system
Open the Microsoft Store and select your favorite Linux distribution. For instance:
- Ubuntu 20.04 LTS
- openSUSE Leap 15.1
- SUSE Linux Enterprise Server 15 SP1
- Kali Linux
- Debian GNU/Linux
- Fedora Remix for WSL
- Pengwin Enterprise
- Alpine WSL
Set your distribution version to WSL 1 or WSL 2
wsl --list --verbose wsl --set-version <distribution name> 2 Make sure to replace with the actual name of your distribution, e.g. "Ubuntu-20.04"
Install docker on WSL2
The instructions can be found here, but here are the quick scripts for installing Docker on Ubuntu:
sudo apt-get update sudo apt-get -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get -y install docker-ce docker-ce.cli containerd.io Run docker daemon in WSL2
sudo service docker start # (a) Run docker service, recommended sudo dockerd # or (b) this one also works Build and run a container app
If you are using approach (b) to start docker service, remember to open a new Ubuntu terminal (I am using Windows Terminal, but you can use whatever terminal tools, e.g. Cmder or Fluent Terminal etc.)
docker run hello-world This will run the 'hello-world' app in your container!

Congrats! You have run the simplest Linux container App in WSL2!
Run your customized container app using Dockerfile
- Create a new file called 'dockerfile', where Apache2 web server is installed, and a simple html file is hosted:
FROM ubuntu:latest RUN apt-get update RUN DEBIAN_FRONTEND="noninteractive" apt-get install -y apache2 RUN echo "Welcome to my web site" > /var/www/html/index.html EXPOSE 80 - Build and run the docker instance
docker build -t "webserver" . docker images docker run -d -p 80:80 webserver /usr/sbin/apache2ctl -D FOREGROUND If you see some output like this, it is a success
- Try your Apache web server on your windows host:
Open a browser and navigate to http://localhost:80
Or run in terminal:
curl localhost Congrats! You have run your customized Linux container App in WSL2!







Top comments (0)