Migration von Docker Desktop zu Rancher Desktop mithilfe von WSL2

31.03.2022

Zum 31. Januar 2022 hat sich das Lizenmodell von Docker Deskop geändert. Größere Firmen müssen sich nun entscheiden auf die kostenpflichtige Version umzusteigen oder zu migrieren. Dieser Blogpost beschreibt die Migration zur OpenSource Alternative Rancher Desktop.

Warum ist eine Migration notwendig?

Zum 31. Januar 2022 hat sich das Lizenzmodell von Docker Desktop grundlegend geändert. Seither ist Voraussetzung für die Nutzung der kostenlosen Docker Desktop Version, dass das einsetzende Unternehmen weniger als 250 Mitarbeiter besitzt und weniger als 10 Millionen USD (ca. 9.093.200€) in einem Jahr verdient. [ 1 ] Diese Voraussetzungen lassen sich von kleinen Firmen erfüllen. Größere Firmen allerdings müssen sich nun entscheiden, auf eine kostenpflichtige Subscription umzusteigen oder sich nach Alternativen umzusehen. Eine vielversprechende Alternative für den Ersatz von Docker Desktop ist Rancher Desktop. Rancher Desktop ist eine Open-Source Software für Mac, Windows und Linux. Mithilfe von Rancher Desktop können Kubernetes und andere Container Management Plattformen betrieben und administriert werden.

 

Screenshot von Rancher Desktop
Eigene Darstellung – https://rancherdesktop.io/

Dieser Blogpost beschreibt wie eine Migration von Docker Desktop zu Rancher Desktop möglich ist, welche Probleme wir lösen mussten und was zu beachten ist.

Installation von Rancher Desktop

Zunächst sollte Docker Desktop vollständig von dem Entwicklungsrechner entfernt werden, um potenziellen Konfigurationsproblemen vorzubeugen. Anschließend kann Rancher Desktop auf der offiziellen Webseite von Rancher heruntergeladen werden. Die Images können mithilfe von dockerd oder containerd gebaut, hochgeladen, heruntergeladen und betrieben werden. [ 2 ]

Bei einer Migration von Docker Desktop auf Rancher sollte dockerd als Container Runtime eingesetzt werden, da die bestehenden docker-compose Konfigurationen dort einfacher und ohne größere Umbauten wiederverwendet werden können. Unsere Tests mit containerd haben gezeigt, dass mit dieser Container Runtime größere Umbauten am Setup notwendig sind. Beispielsweise wurde versucht beim Starten eines Containers das entsprechende Image aus der Docker Registry zu laden, anstatt auf das lokal gebaute zurückzugreifen.

Architektur Rancher Desktop
Architektur Rancher Desktop – https://rancherdesktop.io/

Docker Credential Helper

Die Installation des Docker Credential Helpers wird benötigt, um die Zugangsdaten für den Login in die Docker Registry (Ausführen des Befehls docker login) sicher zu speichern. Aufgrund der Integration des WSL in Windows kann die Windows Version des Docker Credential Helpers direkt im WSL2 installiert und genutzt werden. Durch das Ausführen der folgenden Befehle wird die wincred.exe heruntergeladen und die entsprechenden Berechtigungen gesetzt:

# Finds the latest version
$ wincred_version=$(curl -fsSL -o /dev/null -w "%{url_effective}" https://github.com/docker/docker-credential-helpers/releases/latest | xargs basename)

# Downloads and extracts the .exe
$ sudo curl -fL \
    "https://github.com/docker/docker-credential-helpers/releases/download/${wincred_version}/docker-credential-wincred-${wincred_version}-$(dpkg --print-architecture).zip" |
    zcat | sudo tee /usr/local/bin/docker-credential-wincred.exe >/dev/null

# Assigns execution permission to it
$ sudo chmod +x /usr/local/bin/docker-credential-wincred.exe

Anschließend muss die Konfiguration der Docker CLI angepasst werden, damit der zuvor heruntergeladene Credential Helper genutzt wird. Dazu muss folgender Eintrag in der Datei ~/.docker/config.json hinzugefügt werden (Falls noch nicht vorhanden):

{
    "credsStore": "wincred.exe"
}

Die Funktionalität kann durch Ausführen des Befehls docker login verifiziert werden. Falls es nicht korrekt funktioniert hat, wird eine Fehlermeldung erscheinen, dass die Credentials im Klartext gespeichert werden.

Docker-Compose

Zunächst muss die bestehende docker-compose Installation von Docker Desktop entfernt werden. Dazu sollte das bin Verzeichnis der alten Installation aus der „PATH“ Systemvariable entfernt werden.

Windows Path Umgebungsvariable
Eigene Darstellung – Windows Umgebungsvariablen

 

Anschließend müssen noch im WSL vorhandene Referenzen aus dem Verzeichnis /usr/local/lib/docker/cli-plugins gelöscht werden. Dazu die entsprechenden Links und Dateien in diesem Verzeichnis entfernen. Beispielsweise könnte die Auflistung der Inhalte des Ordners /usr/local/lib/docker/cli-plugins folgendermaßen aussehen:

lrwxrwxrwx 1 root root 80 Jan 5 11:00 docker-buildx -> /mnt/wsl/docker-desktop/cli-tools/usr/local/lib/docker/cli-plugins/docker-buildx

lrwxrwxrwx 1 root root 81 Jan 5 11:00 docker-compose -> /mnt/wsl/docker-desktop/cli-tools/usr/local/lib/docker/cli-plugins/docker-compose

lrwxrwxrwx 1 root root 78 Jan 5 11:00 docker-scan -> /mnt/wsl/docker-desktop/cli-tools/usr/local/lib/docker/cli-plugins/docker-scan

Installation in WSL2

Nun sollte nochmals geprüft werden ob wirklich alle Referenzen zu der docker-compose Installation von Docker Desktop entfernt wurden. Dies kann mit dem Befehl

~$ which docker-compose

getestet werden. Wenn dieser Befehl kein docker-compose mehr finden kann, wurde alles erfolgreich entfernt. Nun kann das docker-compose Binary aus Github heruntergeladen werden.
Nach dem Download der entsprechenden binary sollte diese zu docker-compose umbenannt und in den Ordner $HOME/.docker/cli-plugins verschoben werden.
Alternativ kann die binary auch in einen der folgenden Ordner kopiert werden, um dieses systemweit nutzen zu können:

  • /usr/local/lib/docker/cli-plugins OR /usr/local/libexec/docker/cli-plugins
  • /usr/lib/docker/cli-plugins OR /usr/libexec/docker/cli-plugins

Unter Umständen kann es nötig sein, das heruntergeladene Binary mit chmod +x ausführbar zu machen. [ 3 ]

Testen der Rancher Installation

Um zu Testen ob alles richtig funktioniert hat, kann dieses Beispiel durchgetestet werden. Wenn alles wie beschrieben ohne Fehler funktioniert, ist die lokale Einrichtung von Rancher Desktop abgeschlossen und das Arbeiten mit Rancher Desktop kann beginnen.

 

Mehr über Frontend Entwicklung erfahren

Quellen

[ 1 ] https://www.docker.com/blog/the-grace-period-for-the-docker-subscription-service-agreement-ends-soon-heres-what-you-need-to-know/

[ 2 ] https://rancherdesktop.io/

[ 3 ] https://github.com/docker/compose

Zurück zur Übersicht

2 Kommentare zu “Migration von Docker Desktop zu Rancher Desktop mithilfe von WSL2

  1. Is it possible to run rancher desktop behind a proxy? My installation is not able to pull images and i do not know how to tell nerdctl and rancher-desktop to use a proxy

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*