Docker Desktop vs Rancher Desktop

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:

FeatureDocker DesktopRancher Desktop
Run Kubernetes
Build Images / Run Containers
Runs on Windows, Mac, and Linux
Open source softwareX
Docker CLI & dockerd (with socket1)2
ExtensionsX
Choose the version of Kubernetes you want to useX3
nerdctl4 / containerdX5
User Interface to port forward services in Kubernetes6X
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.

Footnotes


  1. The dockerd socket is important because many tools (e.g. Visual Studio Code) communicate directly over the socket. ↩︎

  2. Rancher Desktop uses open source codebases, such as Moby, to provide this functionality. ↩︎

  3. Rancher Desktop lets you choose any version of K3s to run. This way you can set your local version of Kubernetes to be the same as the one you’re using in dev, QA, or production. ↩︎

  4. 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. ↩︎

  5. Rancher Desktop lets you choose between either dockerd (provided by Moby) and the Docker CLI or containerd and nerdctl. ↩︎

  6. 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. ↩︎