Rancher Desktop - Die Alternative für Docker Desktop für Windows

In der Finalen Gegeünberstellungen kommt Rancher Desktop in den Ring, kann sich Rancher Desktop gegen Docker Desktop behaupten?

Rancher Desktop - Die Alternative für Docker Desktop für Windows
Racnher Desktop vs Docker Desktop for Windows

Part 1: [Overview] Docker Desktop - Potentielle Alternativen (Windows)
Part 2: Podman - Potentielle Alternative für Docker Desktop für Windows
Part 3: Docker-CE + WSL2 - Potentielle Alternative für Docker Desktop für Windows
Part 4: Ranger Desktop - Potentielle Alternative für Docker Desktop für Windows

In diesem Artikel stelle ich Rancher Desktop vor, ist das die Alternative was zumindest das Titelbild suggeriert? Jaein! Mehr dazu weiter unten.

Rancher Desktop

Dass Rancher gute/einfache Tools für den Container-Markt liefert sollte mittlerweile klar sein. Persönlich würde ich RKE zu den Enterprise Lösungen zählen, und direkt nach AKS, EKS, GKE einordnen. Überraschend - zumindest für mich - war, dass die Entwicklung nach der Übernahme durch SUSE nicht gestockt hat (RIO mal ausgenommen), im Gegenteil zu den Produkten kam nun ein weiters dazu, Rancher Desktop.

Was ist Rancher Desktop?

Man könnte Rancher Desktop als direkten Konkurrenten für Docker Desktop für Windows bezeichnen. Selbst preist sich das Tool als Container-Management und Kubernetes Umgebung für den Desktop, und das nicht nur für Windows.

Die Lösung kann auf den meisten Betriebssystemen installiert werden. Windows, Linux Distributionen, Mac OS amd64/x86 und Mac OS ARM. Rancher Desktop bündelt unter anderem nertctl, kubectl, helm die Docker CLI als Tools zusammen.

Mit k3s hat man zudem eine recht verbreitete und von der CNCF aufgeführte Kubernetes Umgebung on board, die sich zum einen mit containerd und zum anderen - das ist für meinen Einsatzzweck wichtig - mit dockerd betrieben lässt.

Zusätzlich kommen alle k8sVersionen der letzten Jahre mit, somit kann auf Desktop Ebene das Zielsystem besser nachgestellt werden, das kommt der Entwicklung zugute.

Rancher Desktop k8s versions

Das wechseln zwischen den k8s Versionen gestalltet sich recht einfach und schnell! Als reverse proxy wird traefik verwendet. Ich habe Mitte Februar (2022) die Version 1.0.1 installiert, heute - März 2022 - stehen wir schon bei der Version 1.2.1. Es wird weiterentwickelt, in der Zwischenzeit ist z.B. der Support für Mac M1 dazugekommen.

Die Oberfläche ist schlicht und einfach gehalten, das Meiste kann in der Oberfläche konfiguriert werden. Mit der Installation werden zwei WSL2 Container angelegt, rancher-desktop und rancher-desktop-data.

rancher desktop default wsl

Die k8s Konfiguration und Docker Socker kann in weitere WSL integriert werden, für was das genau gut sein soll konnte ich aus Mangel an Zeit leider nicht testen.  Vielleicht können so multi-node Szenarien nachgestellt werden?

wsl integration menu in rancher desktop

Genug geschwärmt, kann Rancher Desktop meine Anforderungen erfüllen? Das verrate ich weiter unten.

Rancher Desktop Installation

Hier gibt es nicht viel zu berichten, herunterladen, ausführen, weiter, weiter und fertig! Danach startet die Konfigurationsoberfläche und man kann die Container-Runtime und die Kubernetes Version auswählen. Für mein Vorhaben wählte ich hier dockerd, dadurch wird eine Kubernetes Umgebung mit dockerd und der gewählten Version aufgezogen. Zusätzlich werden docker.exe und docker-compose.exe in Windows bereitgestellt => beide Befehle können sofort von Windows aus eingesetzt werden.

Persönlich fand ich die Installation als einfacher/angenehmer als Docker Desktop. Die Instllation unter Ubuntu Desktop verlief genauso einfach, ob es auf einem Linux Desktop Sinn macht, muss jeder für sich entscheiden, es wird auf jeden Fall eine kleine VM auf Basis von QEMU installiert.

Rancher Desktop in Windows

Perfekt, alles da was ich brauche und kenne. Ohne großes Häckmeck Docker, Docker-Compose direkt verfügbar. Container in Container funktioniert auch, was will man mehr?

Windows Container... leider nein, auch mit dieser Variante muss man auf Windows Container verzichten. Container die mit docker oder docker-compose mal schnell aufgezogen werden, können aus der Oberfläche heraus nicht verwaltet werden. Das ist für mich unwichtig, da ich sowieso eher die Befehle verwende, und für alles andere gibt es noch portainer oder die Docker VSCode Extension.

Wie schaut es eigentlich mit der VSCode Integration aus?

Rancher Desktop + Remote Container in Visual Studio

Ich mach es kurz, es läuft! Ja, es läuft ohne etwas einzustellen etc.

Auch die "Try as Container" Beispiele - container in container - funktionieren direkt aus VSCode heraus... Nicht! Zumindest nicht mehr, es hatte mal funktioniert. Das muss ich mir nochmal ansehen.

Normale devcontainer funktionieren jedoch tadellos, es kommt mir aber so vor, als ob der "Kaltstart" länger dauert.

Rein vom Gefühl her, meine ich dass das mit Docker Desktop für Windows viel schneller ging.. Genau, ging :)

Fazit

Wie im Titelbild zu sehen, wurde Docker aus der Arena katapultiert. Für mich ist Rancher Desktop defacto die bessere Wahl. Ich habe meine Zahlungsbereitschaft für Docker Desktop öfters erwähnt. Dieser Test hat für mich aber einen weiteren Hintergrund.

Die Entwicklungen in den letzten Jahren bzgl. Docker finde ich bedenklich. Zum einen wurde die Enterprise Sparte der Firma von einem Systemhaus aufgekauft, Docker Swarm wurde abgekündigt - ja, es gibt noch Docker Swarm Mode - dann wurde bekannt gegeben, dass dockershim aus Kubernetes - ich glaube mit einer der nächsten Versionen 1.24,1.25 ? - entfernt wird und dann die neue Preis-Politik.

Leider kann ich kein Geschäftsmodell hinter Docker entdecken, dass der Desktop Client kostenpflichtig wird, kann nur ein Teil - meiner Meinung nach sogar ein ganz kleiner Teil - von einem größeren Plan sein. Den Plan sehe ich nicht!

Zu dem aktuellen Zeitpunkt glaube ich, dass keiner so genau sagen kann wie es weitergeht, daher schadet es nicht sich irgendwo anders umzusehen.

Der Plan ist mit Rancher Desktop vorerst weiter zu machen. Falls sich hier etwas neues ergeben sollte, werde ich berichten.