Kurz gesagt: Beim Umstieg von Windows auf Linux war die Installation des neuen Systems der einfache Teil. Die eigentliche Arbeit war der Umzug meiner Docker-Umgebung von Windows 11 mit WSL2. Mein wichtigster Rat: Unterscheide zwischen dem, was sich neu bauen lässt, und dem, was unersetzlich ist. Datenbanken sicherst du zusätzlich als Dump, und ein Backup ist erst dann etwas wert, wenn die Wiederherstellung getestet ist.

Die Ausgangslage

Unter Windows 11 liefen meine Entwicklungsumgebungen in Docker Desktop mit WSL2. Über die Jahre hatten sich dort Images, Container, Volumes, Datenbanken und Projektdaten für verschiedene Kundenprojekte angesammelt. Vieles davon war nicht mehr in fünf Minuten neu aufgebaut. Also musste ein Plan her.

Erst verstehen, was wirklich gespeichert ist

Bei Docker werden drei Dinge gern durcheinandergebracht:

  • Images lassen sich meist aus einem Dockerfile neu bauen oder aus einer Registry laden.
  • Container sind kurzlebige Instanzen und lassen sich jederzeit neu erzeugen.
  • Volumes und andere dauerhafte Daten sind oft das eigentlich Wertvolle: Datenbanken, Uploads und lokal gespeicherte Anwendungsdaten.

Deshalb sollte eine Migration nicht damit beginnen, irgendein Docker-Verzeichnis blind zu kopieren. Zuerst musst du herausfinden, welche Daten wo liegen und welche Versionen tatsächlich im Einsatz sind.

Mein Vorgehen

Ich habe mich an eine einfache Reihenfolge gehalten:

  1. Alle Projekte, Compose-Dateien und Umgebungsvariablen erfassen.
  2. Wichtige Datenbanken zusätzlich als Dump exportieren, zum Beispiel mit mysqldump oder mariadb-dump.
  3. Dauerhafte Dateien und Volumes separat sichern.
  4. Docker unter Linux neu einrichten.
  5. Container mit bekannten Versionen starten und die Daten kontrolliert zurückspielen.
  6. Anwendungen und Daten prüfen, bevor das alte System stillgelegt wird.

Je nach Projekt kann die Reihenfolge abweichen. Datenbankverzeichnisse solltest du aber nie unüberlegt zwischen unterschiedlichen Datenbankversionen kopieren.

Warum WSL2 kein normales Verzeichnis ist

Unter Windows laufen die Linux-Container von Docker Desktop in einer eigenen Linux-Umgebung. Das führt zu falschen Erwartungen: Nur weil du Dateien aus Windows heraus findest oder exportieren kannst, ist die Struktur auf einem neuen Linux-System noch lange nicht dieselbe.

Typische Stolpersteine:

  • Pfade: Ein Bind-Mount, der unter Windows auf einen bestimmten Ordner zeigte, braucht unter Linux einen anderen Pfad.
  • Benutzer und Rechte: Unter Linux spielen Benutzer-IDs, Gruppen und Dateirechte eine viel direktere Rolle. Dateien, die ein Container anlegt, gehören plötzlich einem anderen Benutzer.
  • Netzwerk: Ports, Hostnamen und lokale Domains können sich anders verhalten.
  • Zeilenenden und Skripte: Shell-Skripte, die unter Windows bearbeitet wurden, sollten auf Windows-Zeilenenden geprüft werden.

Bei Projekten mit vielen Konfigurationsdateien lohnt sich deshalb eine systematische Durchsicht, statt auf Fehler zu warten.

Datenbanken verdienen besondere Vorsicht

Wer Shopware- oder Symfony-Projekte betreut, weiß: Eine Datenbank ist kein austauschbarer Container. Ein verlorenes Volume kann Stunden oder Tage Arbeit kosten.

Für wichtige Daten halte ich deshalb einen Dump zusätzlich zur Dateisicherung für sinnvoll. Ein Dump lässt sich gezielt in eine passende Datenbankinstanz zurückspielen. Dabei musst du auf Datenbankversion, Zeichensatz, Collation und die Anforderungen der Anwendung achten. Bei Shopware zum Beispiel gibt es klare Vorgaben, welche MySQL- oder MariaDB-Versionen unterstützt werden.

Was ich heute anders mache

Der Umzug hat mich darin bestärkt, Entwicklungsumgebungen möglichst reproduzierbar zu halten:

  • Compose-Dateien und Konfigurationen gehören in eine nachvollziehbare Projektstruktur.
  • Zugangsdaten gehören nicht ins Repository.
  • Dauerhafte Daten brauchen ein eigenes Backup-Konzept.
  • Versionen von Datenbank und PHP stehen fest in der Konfiguration, nicht „latest“.

Und vor allem: Ein Backup ist erst dann beruhigend, wenn die Wiederherstellung getestet wurde.

Fazit

Der Wechsel von Windows auf Linux war nicht das Problem. Die über Jahre gewachsene Docker-Umgebung war die eigentliche Herausforderung. Wer rechtzeitig zwischen Konfiguration, reproduzierbaren Images und unersetzlichen Daten unterscheidet, spart sich viel Stress.

Die wichtigste Lehre gilt unabhängig vom Betriebssystem: Dokumentation und getestete Backups schlagen jede spontane Kopieraktion.

Häufige Fragen

Kann ich Docker-Volumes einfach von WSL2 nach Linux kopieren?

Technisch lassen sich Volumes sichern und zurückspielen. Bei Datenbanken ist ein Dump aber der sicherere Weg, besonders wenn sich die Datenbankversion ändern könnte.

Muss ich meine Images neu bauen?

Wenn es ein Dockerfile gibt, ist Neubauen meist der sauberste Weg. Images aus einer Registry lädst du einfach neu.

Was ist der häufigste Fehler beim Umzug?

Nach meiner Erfahrung: dauerhafte Daten zu übersehen, weil man nur an Container und Images denkt. Erst eine vollständige Bestandsaufnahme verhindert das.