Did you know that even if you work for a company, you can still legally use containers with Docker using WSL 2? Today I'll show you how.
Since Docker announced updates on its license agreement, Docker Desktop is exclusively for personal use, educational institutions, non-commercial open-source projects, and small businesses. Other companies need to acquire a license for Docker Desktop; this license update is only related to Docker Desktop and not to Docker or the Docker Engine.
However, there is an alternative on Windows to continue to legally use containers with Docker using WSL 2.
Docker is an open-source containerization platform. It enables developers to package applications into containers, which are standardized, executable components combining application source code with the operating system (OS) libraries and dependencies required to run that code in any environment.
The Windows Subsystem for Linux 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.
In this article, I will show you how to install and configure Docker Engine directly on Linux using WSL 2 on Windows.
The first thing you have to do is make sure Docker Desktop and Docker CLI are not installed on your Windows, since later you will have to install the Docker Engine alone.
There are a couple important advantages to running Docker Engine on WSL 2, but there is also one disadvantage.
Note: All commands below must be executed on Linux distro shell. They will not work with “Ubuntu 22.04 LTS” distribution at this time. They do work with the following distributions:
sudo apt remove docker docker-engine docker.io containerd runc
sudo apt update && sudo apt upgrade -y
sudo apt remove docker docker-engine docker.io containerd runc
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release -y
Add the Docker repository on the Linux source list:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Use the following command to set up the repository:
echo \Now let's install Docker Engine:
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
sudo usermod -aG docker $USER
sudo curl -L
"https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo service docker start
docker run hello-world
sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=StrongPassword@123' -p 1433:1433 -d --name=sqlserver mcr.microsoft.com/mssql/server:2022-latest
Now that our SQL Server Docker Container is up and running on port 1433, open up Azure Data Studio and use the same credentials to connect to it.
To log in, use the configuration below:
server: 127.0.0.1,1433
user: sa
pass: StrongPassword@123
The SQL Server connection will look like this:
And the SQL Server databases will look like this:
sudo docker run -d --name mongodb -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=user -e MONGO_INITDB_ROOT_PASSWORD=StrongPassword mongo
MongoDB Docker Container is up and running on port 27017. Open NoSQLBooster and use the connection below:
mongodb://user:StrongPassword@localhost:27017
The MongoDB connection will appear as follows:
The MongoDB databases will look like this:
One of the advantages of using Docker Desktop is its visual facility for manipulating images and containers, but we can also achieve this using Portainer, an excellent tool with an open-source version, to administer and manage these resources.
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
Now that the installation is complete, you can log into your Portainer Server instance by opening a web browser and going to:
After logging in, you can view all resources, such as images, containers, networks, and volumes in a very simple format. It will look something like this:
I hope you have enjoyed this tutorial on how to install the Docker Engine directly onto your preferred Linux distro using WSL 2 on Windows, as well as how to manipulate and manage all Docker resources using Portainer. Comment if you have any questions or suggestions!