Utilo

docker run ↔ Compose-Konverter

Wandeln Sie docker-run-Befehle in docker-compose / compose.yaml-Services um – inklusive Ports, Umgebungsvariablen, Volumes, Netzwerke, Healthchecks und Ressourcenlimits – oder machen Sie aus Compose-Services wieder docker run.

Was dieser Konverter tut

Ein docker run-Befehl, der als schnelles Experiment begann, neigt dazu zu wachsen: Ports, Volumes, Umgebungsvariablen, ein Netzwerk, eine Neustartrichtlinie. Irgendwann gehört es in eine compose.yaml. Dieser Konverter analysiert einen oder mehrere docker run-Befehle und erzeugt eine saubere Compose-Datei mit einem Service pro Befehl. Es funktioniert auch umgekehrt: fügen Sie eine Compose-Datei ein und erhalten Sie die entsprechenden docker run-Befehle, die praktisch zum Debuggen eines einzelnen Dienstes oder zum Ausführen auf einem Host ohne Compose sind. Das Parsen erfolgt lokal in Ihrem Browser.

So verwenden Sie es

  1. Wählen Sie docker run → compose oder compose → docker run.
  2. Fügen Sie Ihre Befehle ein, eine pro Zeile. Backslash-Linienfortsetzung ist in Ordnung, und eine führende sudo wird ignoriert.
  3. Überprüfen Sie die generierte YAML. Benannte Volumes und benutzerdefinierte Netzwerke werden automatisch auf der obersten Ebene deklariert.
  4. Lesen Sie die Anmerkungen für Optionen, die kein Compose-Äquivalent haben.
  5. Kopieren Sie die Ausgabe, speichern Sie sie als compose.yaml und führen Sie docker compose up -d aus.

Unterstützte Optionen

Ports (-p, --expose), Umgebung (-e, --env-file), Volumen und Aufstellungen (-v, --mount, --tmpfs), Netzwerk (--network, --network-alias, --ip, --hostname, --add-host, --dns, --link), Neustartrichtlinie, Benutzer- und Arbeitsverzeichnis, Eingangspunkt und Befehl, Etiketten, Logging-Treiber und -optionen, Gesundheitsüberprüfungen (--health-*), Ressourcegrenzen (--memory, --cpus, --shm-size, --ulimit, --gpus), Sicherheitsoptionen (--privileged, --cap-add, --cap-drop, --security-opt, --read-only), Geräte, sysctls, --init, --platform, --pull, -it und mehr.

Tipps

  • Die Dienstnamen stammen von --name; wenn keine vorhanden sind, wird der Bildname verwendet.
  • --rm und -d haben in Compose keine Bedeutung und werden mit einer Note fallen gelassen.
  • Relative bind mounts in Compose werden relativ zur Compose-Datei gelöst, nicht zum Verzeichnis Ihrer Shell. Verwenden Sie Wege im Stil von ./data.
  • Geheimnisse, die mit -e übermittelt werden, enden in Klartext. Überlegen Sie, sie in eine .env-Datei zu verschieben und auf ${VAR} zu verweisen.

Häufige Fragen

Welche Compose-Version wird generiert?

Die Ausgabe folgt der aktuellen Compose-Spezifikation, die von Docker Compose v2 verwendet wird. Der veraltete Top-Level-version:-Schlüssel wird weggelassen.

Kann ich mehrere Container gleichzeitig umwandeln?
  • Ja, das ist es. Fügen Sie mehrere docker run-Befehle ein und jeder wird zu einem Dienst in derselben Datei, der deklarierte Netzwerke und Volumes teilt.
Unterstützt compose → run die Erstellung von Abschnitten?

build: hat kein docker run-Äquivalent, also verwendet das Tool den Bildnamen und fügt eine Anmerkung hinzu, dass man zuerst bauen soll.

Ist mein Befehl hochgeladen?
  • Nein, nicht wirklich. Die Konvertierung erfolgt vollständig in Ihrem Browser.

Ja. Die gesamte Verarbeitung erfolgt direkt in deinem Browser mit JavaScript, Web Workern und Web-APIs. Nichts, was du eingibst, einfügst oder hochlädst, wird an unsere Server gesendet.

Diese Seite wurde automatisch aus dem Englischen übersetzt. Wenn dir ein Fehler auffällt, sag uns bitte Bescheid.