Zum Inhalt springen

So funktioniert's (Überblick)

Diese Seite ist die Brücke zwischen Was ist MultiDocker? und den tieferen Konzepten. Sie begleitet ein Projekt von der Registrierung bis zum geöffneten Browser-Tab und erklärt, was bei jedem Schritt passiert.

init → up → open
mdocker init ~/Projects/aurora
└─ detect profile (image/service heuristic)
└─ write ~/.config/multi-docker/overrides/aurora.override.yml
└─ record project in registry.json
mdocker up aurora
└─ port-conflict pre-flight (remap to a free port if needed)
└─ docker compose -p aurora up -d
COMPOSE_FILE = <project>/docker-compose.yml : aurora.override.yml
└─ containers join the multi-docker-edge network
└─ Traefik picks up the labels and starts routing
mdocker open aurora
└─ open https://aurora.coding9.test
mdocker (any verb) ──► docker compose -p <name> (COMPOSE_FILE chain)
├─► engine/detect.sh pick a profile
├─► engine/render.sh ──► engine/profiles/*.yml generate the override
└─► scripts/*.sh TLS · DNS · network · doctor
edge/compose.yml ──► Traefik ──► your labelled project containers
(provider = docker, via the docker-socket-proxy)

mdocker init <path> inspiziert die Compose-Datei des Projekts, führt die Profil-Heuristik (engine/detect.sh) aus, um ein passendes Template zu wählen, und erzeugt dann das Override mit engine/render.sh. Das Projekt wird in registry.json festgehalten — der Single Source of Truth für Pfad, Profil, Hostnamen und persistierte Port-Overrides.

mdocker up <name> führt zuerst einen Port-Konflikt-Preflight aus: Wenn ein Host-Port, den dein Projekt veröffentlicht, bereits von einem fremden Prozess belegt ist, findet MultiDocker einen freien Ersatz und persistiert ihn. Danach ruft es docker compose mit der COMPOSE_FILE-Kette auf, sodass das Override über dein unangetastetes Original gelegt wird. Die Container treten dem multi-docker-edge-Netz bei und Traefik beginnt sofort, anhand der Labels im Override zu ihnen zu routen.

Weil dnsmasq *.<base-domain> mit 127.0.0.1 beantwortet und der macOS-Resolver diese Domain dorthin weiterleitet, löst https://aurora.coding9.test zu Traefik auf. Das mkcert-Wildcard-Zertifikat macht die Verbindung vertrauenswürdig, sodass der Browser ein grünes Schloss-Symbol zeigt.

Das generierte Override entfernt Host-Ports und fügt Routing-Labels hinzu. Ein vereinfachtes Beispiel:

aurora.override.yml
services:
proxy:
ports: !reset [] # remove host port bindings, do not merge them
networks: [default, edge]
labels:
- "traefik.enable=true"
- "traefik.http.routers.aurora.rule=Host(`aurora.coding9.test`)"
- "traefik.http.routers.aurora.tls=true"
networks:
edge:
name: multi-docker-edge
external: true

Du willst die Details? Lies Die Override-Engine, Der Edge-Stack und DNS & TLS.