docker run-Befehle in eine compose.yaml umwandeln: Ports, Volumes, Netzwerke, Health Checks
Läuft in Ihrem Browser. Nichts, was Sie eingeben, wird irgendwohin gesendet. Geprüft am 16. Oktober 2026.Jedes docker run-Flag hat einen Compose-Schlüssel. Das Image bleibt image, und 5 häufige Flags werden direkt übertragen: -p wird zu ports, -e zu environment, -v zu volumes, --restart zu restart und --name zu container_name, während -it zu stdin_open und tty wird. Flags wie -d und --rm haben keine Entsprechung, da docker compose up -d Services im Hintergrund ausführt.
Diese Seite wurde maschinell aus dem englischen Original übersetzt. Die Übersetzung wurde noch von keinem Menschen geprüft; maßgeblich ist die englische Fassung. Englisches Original lesen
Fügen Sie einen oder mehrere docker run-Befehle ein, auch mit Backslash-Zeilenumbrüchen, oder klicken Sie auf Beispiel ausprobieren.
Lesen Sie die compose.yaml rechts: ein Service pro Befehl, Volumes und Netzwerke werden unten deklariert.
Prüfen Sie die Hinweise auf Flags ohne Compose-Entsprechung, etwa --rm.
Klicken Sie auf Herunterladen, um compose.yaml zu speichern, und führen Sie dann docker compose up -d im selben Ordner aus.
Ein funktionierender docker run-Befehl ist der beste Ausgangspunkt für eine Compose-Datei, doch 10 Flags von Hand umzuschreiben lädt zu Fehlern ein. Fügen Sie den Befehl ein, oder mehrere, und Sie erhalten eine compose.yaml mit je einem Service, nach der Compose Specification, sodass sie mit docker compose up -d funktioniert.
| docker run | compose.yaml |
|---|---|
--name web |
container_name: web |
-p 8080:80 |
ports: ["8080:80"] |
-e KEY=value |
environment: ["KEY=value"] |
-v data:/data |
volumes: plus ein data: auf oberster Ebene |
--network shop-net |
networks: plus shop-net: external: true |
--restart unless-stopped |
restart: unless-stopped |
-it |
stdin_open: true, tty: true |
--gpus all |
deploy.resources.reservations.devices |
Was verstanden wird. Mehr als 70 docker run-Flags, in jeder Schreibweise, die die Docker CLI akzeptiert: --flag value, --flag=value, -p80:80 und gruppierte Kurz-Flags wie -it oder -dp 3000:3000. Über Zeilen verteilte Befehle mit \ (bash), ^ (cmd) oder ` (PowerShell) werden zusammengefügt, Anführungszeichen werden wie von einer Shell gelesen, und $(pwd) in einem Volume wird zu ./, weil Compose Pfade vom Ordner der Compose-Datei aus auflöst.
Mehrere Befehle auf einmal. Fügen Sie ein ganzes Setup-Skript ein: Jedes docker run wird zu einem Service, andere Befehle wie docker network create werden übersprungen, und Services mit demselben Image erhalten unterschiedliche Namen.
Nichts wird versteckt. Flags ohne Compose-Entsprechung wie --rm und -d sowie jedes Flag, das das Tool nicht kennt, werden unter dem Ergebnis aufgelistet, statt zu verschwinden. Ports und Umgebungswerte stehen in Anführungszeichen, damit kein YAML-Leser 22:22 für eine Zahl hält. Die Datei hat keinen version:-Schlüssel, den die Compose Specification für überholt erklärt hat.
Alles läuft in Ihrem Browser; die eingefügten Befehle, die oft Passwörter enthalten, werden nie irgendwohin gesendet.
Geben Sie jedem Flag seinen Compose-Schlüssel unter einem Service: das Image als image, -p als ports, -e als environment, -v als volumes, --name als container_name und --restart als restart. Benannte Volumes und eigene Netzwerke erhalten zusätzlich einen Eintrag auf oberster Ebene. Wenn Sie den Befehl hier einfügen, wird die ganze compose.yaml geschrieben, bereit für docker compose up -d.
Das Flag -i wird zu stdin_open: true und -t zu tty: true, -it setzt also beides. Das Flag -d hat keinen Schlüssel, weil docker compose up -d jeden Service im Hintergrund startet. Um sich später mit einem laufenden Service zu verbinden, verwenden Sie docker compose attach oder docker compose exec mit dem Servicenamen.
In der Datei nichts: Compose-Services sind dafür gedacht, bestehen zu bleiben, daher gibt es keinen Schlüssel, der den Container beim Stoppen löscht. Für eine einmalige Aufgabe führen Sie docker compose run --rm mit dem Servicenamen aus, was diesen Container danach entfernt. Der Hinweis unter dem Ergebnis zeigt an, wenn --rm weggelassen wurde.
Ein docker run mit --network shop-net nutzt ein Netzwerk, das bereits existiert. Die Markierung external sagt Compose, diesem Netzwerk beizutreten, statt ein eigenes zu erstellen, sodass auf beide Arten gestartete Container weiter miteinander kommunizieren können. Soll Compose das Netzwerk stattdessen erstellen und verwalten, löschen Sie die Zeile external: true.
Ja, schreiben Sie Ports als Strings wie "8080:80". Manche YAML-Leser behandeln zwei durch einen Doppelpunkt verbundene Zahlen als Zahl zur Basis 60, sodass 22:22 zu 1342 werden und eine SSH-Zuordnung zerstören könnte. Dieses Tool setzt jeden Port, jeden Umgebungseintrag und jeden Volume-String in Anführungszeichen, damit die Datei überall dasselbe bedeutet.
Nein. Die Compose Specification hat den version:-Schlüssel für überholt erklärt, und neuere Versionen von docker compose warnen, wenn er vorhanden ist. Hier erzeugte Dateien beginnen direkt mit services:, gefolgt von volumes: und networks:, wenn die Befehle benannte Volumes oder eigene Netzwerke verwenden.
Sätze und Regeln ändern sich; prüfen Sie die Quelle, bevor Sie sich auf eine Zahl verlassen.
Kommen Sie nicht weiter? Fragen Sie zu Docker Run in Compose umwandeln und jeder, der es weiß, kann antworten. Kein Konto nötig.