Docker Desktop - Potential Alternatives (Windows)
If the restrictions apply – $10M revenue or 255+ employees – Docker Desktop must be licensed/subscribed. In this article I present alternative solutions for my requirements.
Docker Desktop for Windows
First things first: Switching to a free or cheaper alternative also comes with costs. The alternatives presented here mostly only have the community as a support option. The size of the team/employees should also be considered:
- Can I impose this on my team?
- How much time is needed for a transition?
- What is the acceptance of the alternatives?
What definitely doesn’t work – at least at the time this article was written – is Windows containers. If there is a need for Windows containers, there is currently no alternative to Docker Desktop on Windows.
This problem can be bypassed in some situations with local development on Windows and builds in Azure DevOps.
What are my requirements?
I don’t have exotic requirements for a development environment. I could work directly with a Linux distribution and would be happy with it. Unfortunately that doesn’t work because I depend on a Windows client for communication, correspondence, collaboration, etc. Privately I have a machine with Ubuntu, where I only use VSCode as an environment.
On my work machine I develop under Windows. As development tools I use Visual Studio and Visual Studio Code. With the latter I like to work with Remote Containers. Therefore I have the following requirements:
- [Important] Build/Push of images at host system level
- [Important] Integration with VSCode – Remote Containers
- [Important] Local Kubernetes cluster
- [Not so important] Fast and uncomplicated setup/installation
- [Not so important] Container in Container
I was able to cover the most important topics with all variants. The container-in-container issue also seems to be possible with all variants. I didn’t get it OOTB with 2 out of 3, but I didn’t go deeper into the topic either.
The Alternatives
These are three in total, and all three require WSL2 (Windows Subsystem for Linux V2). The alternatives I tried are:
- Podman + minikube (V3.4.x, V4 was released during this article)
- WSL2 with Docker-CE + minikube (and Docker Compose)
- Rancher Desktop
Kubernetes
The first two need an additional tool for a local Kubernetes environment. MiniKube can be recommended for this. Rancher Desktop brings this along and therefore doesn’t need any additional tools.
Windows Subsystem for Linux V2
A WSL2 environment is required for Podman and the Docker Compose variant. This can be installed directly from the Microsoft Store – e.g. Ubuntu 20.04 – or via the WSL Manager. The latter is a nice tool with a UI, don’t forget to donate :)
Before one of the two variants can be put into operation in a WSL container, it must be ensured that the WSL containers actually run in version 2. This can be found out very easily with the following command in PowerShell:
wsl -l -v
The WSL instances listed in the example above already have version 2. If the desired WSL installation is listed as version 1, the version can be upgraded with the following command. Assuming the name of the WSL instance is DockerHost:
wsl --set-version DockerHost 2
Rancher Desktop brings its own WSL2 instances, these are created during installation.
Articles in this series:
- Part 1: Overview – Docker Desktop - Potential Alternatives (Windows) (you’re reading this)
- Part 2: Podman - Potential Alternative for Docker Desktop for Windows
- Part 3: Docker-CE + WSL2 - Potential Alternative for Docker Desktop for Windows
- Part 4: Rancher Desktop - Potential Alternative for Docker Desktop for Windows