Zum Inhalt springen

Was ist MultiDocker?

MultiDocker betreibt mehrere docker-compose-Projekte parallel auf macOS — ohne die ursprünglichen Compose-Dateien zu editieren und ohne den Kampf um die Ports 80, 443, 3306 und Konsorten.

Jedes Projekt bekommt seinen eigenen echten Hostnamen über HTTPS, zum Beispiel https://aurora.coding9.test, und mehrere Projekte können gleichzeitig nebeneinander laufen.

Lokale Entwicklungs-Stacks wollen alle dieselben Ports. Starte zwei Shopware-Projekte und das zweite scheitert daran, :80 zu binden. Veröffentliche eine Datenbank zweimal auf :3306 und eine davon verliert. Die üblichen Workarounds — jede docker-compose.yml von Hand editieren, Port-Nummern in .env-Dateien jonglieren oder immer nur ein Projekt gleichzeitig laufen lassen — sind mühsam und fehleranfällig.

MultiDocker beseitigt den Konflikt komplett: Host-Ports werden aus jedem Projekt entfernt, ein einziger geteilter Reverse-Proxy besitzt 80/443, und jedes Projekt wird über den Hostnamen statt über einen Port erreicht.

MultiDocker besteht aus drei zusammenspielenden Teilen:

  1. Edge-Stack — ein zentraler Traefik v3 Reverse-Proxy plus Mailcatcher, dnsmasq und ein docker-socket-proxy, alle in einem geteilten Docker-Netz namens multi-docker-edge. Traefik besitzt die Ports 80/443 und routet <host>.<base-domain> zum richtigen Projekt-Container.
  2. Override-Engine — für jedes Projekt wird eine <name>.override.yml unter ~/.config/multi-docker/overrides/ erzeugt. Sie entfernt Host-Port-Bindungen, hängt die Container ans Edge-Netz und fügt Traefik-Labels für das Hostnamen-basierte Routing hinzu. Deine ursprüngliche Compose-Datei wird nie verändert.
  3. mdocker-CLI — ein einziger Befehl, der alles zusammenhält. Er ruft docker compose mit COMPOSE_FILE=<original>:<override> auf, sodass das Override über das unangetastete Original gelegt wird.

Eine native macOS-App (SwiftUI) verpackt das CLI als grafisches Frontend — siehe Die macOS-App.

  • Parallele Projekte. Betreibe so viele Stacks gleichzeitig, wie deine Maschine verkraftet.
  • Echte HTTPS-Domains. Vertrauenswürdige Zertifikate via mkcert, keine Browser-Warnungen.
  • Unangetastete Compose-Dateien. Jede Anpassung lebt in generierten Overrides.
  • Host-Zugriff auf Datenbanken. Erreiche die Datenbank eines Projekts aus TablePlus oder dem CLI.
  • Batteries included. Mail-Catching, Git-Status pro Projekt, öffentliche Demo-Tunnels, Datenbank-Snapshots und AI-Terminal-Sessions.