I’ve been regularly asked about comparisons between Docker Desktop and Rancher Desktop. As I have moved off of Rancher Desktop to work on other things at SUSE, I figure now is a good time to write up some of my thoughts. Note, there is an amazing team working on it now. They are incredibly talented and have made it better than I imagined.
First, I need to say what respect I have for the people who have worked on Docker Desktop. Having worked on a cross platform container desktop app, I’ve learned about so many nuances you have to deal with. They’ve done a lot of subtle work that I’ve learned to appreciate.
Rancher Desktop didn’t start out on a path to be in a comparison with Docker Desktop. When it began, it was all about Kubernetes and ones experience using Kubernetes on the desktop. Building and running containers were not in the initial road map. The container focused features came over time from end users with needs around Kubernetes. For example, being able to build a container image and then use it in Kubernetes without an OCI registry in the loop.
These days it’s possible for many to use Rancher Desktop as a replacement for Docker Desktop.
In full disclosure, I started Rancher Desktop. So, I am talking about one of my projects when I write this up. Keep that in mind.
Without further ado, here is a brief summary comparison:
|Feature||Docker Desktop||Rancher Desktop|
|Build Images / Run Containers||✓||✓|
|Runs on Windows, Mac, and Linux||✓||✓|
|Open source software||X||✓|
|Docker CLI & dockerd (with socket1)||✓||✓2|
|Choose the version of Kubernetes you want to use||X||✓3|
|nerdctl4 / containerd||X||✓5|
|User Interface to port forward services in Kubernetes6||X||✓|
|Container image vulnerability scanning||✓||✓|
Of course, there are a lot of differences from the GUI design style to the back-end (I only suspect as I’m not going to reverse engineer Docker Desktop) to the features. These are the kinds of things to decide on for yourself in your own review.
In summary, if you’re in to containers or Kubernetes than Rancher Desktop is worth taking for a spin.
The dockerd socket is important because many tools (e.g. Visual Studio Code) communicate directly over the socket. ↩︎
dockerd, provided by Moby, uses containerd as its runtime. If you choose to use containerd directly you can use nerdctl as a Docker-compatible-ish CLI. It has many of the Docker CLI commands implemented and can serve as a replacement for many use cases. Note, not all of the Docker CLI commands are implemented, yet, which is why I added the “-ish”. If you are looking for a project to contribute to, this is a good one. ↩︎
Rancher Desktop lets you choose between either dockerd (provided by Moby) and the Docker CLI or containerd and nerdctl. ↩︎
Local port forwarding is useful in Kubernetes as you can expose something in the cluster to external tools for development. Instead of using CLI tools a UI can provide a simple experience to just click a button and expose a service locally. ↩︎