Zum Inhalt springen
100% lokal

docker run zu Compose

Konvertieren Sie einen docker run-Befehl in einen docker-compose.yml-Service oder umgekehrt.

Eingabe
Ausgabe

docker run zu Compose

Fügen Sie einen docker run-Befehl ein und dieses Tool schreibt ihn als docker-compose.yml-Service um, wobei das Image, die Ports, Volumes, Umgebungsvariablen, das Netzwerk und die Neustartrichtlinie ihren Compose-Entsprechungen zugeordnet werden. Schalten Sie die Richtungsoption um und es funktioniert auch umgekehrt: Fügen Sie eine Compose-Datei ein und erhalten Sie den entsprechenden docker run-Befehl für jeden Service zurück, nützlich, wenn Sie nur eine Compose-Datei haben, aber einen Container manuell reproduzieren müssen.

Fügen Sie mehr als einen docker run-Befehl ein, einen pro Zeile, und jeder wird zu seinem eigenen Service in der gleichen Compose-Datei — praktisch, um eine Handvoll Ad-hoc-Container in einen richtigen Multi-Service-Stack umzuwandeln. Erkannte Schalter sind -p/--publish, -v/--volume, -e/--env, --network, --restart, --memory und --cpus (zugeordnet zu einem deploy.resources.limits-Block), sowie --name, --workdir, --user, --entrypoint, --label und --hostname. Umgebungsvariablen können inline unter environment: bleiben oder in eine generierte .env-Datei verschoben werden, auf die mit env_file: verwiesen wird, und das Compose-Dateiformat kann mit oder ohne version:-Schlüssel geschrieben werden.

Nicht jedes docker run-Flag hat ein Compose-Äquivalent — Dinge wie --rm oder --pull sind Container-Lebenszyklusschalter, die keine Compose-Einstellung pro Service haben. Das Tool löscht sie nie stillschweigend: nicht unterstützte Flags werden als Kommentare neben dem Service aufgelistet, zu dem sie gehören, damit Sie genau sehen können, was nicht übertragen wurde. Das Ausschalten von "Ursprüngliche Reihenfolge der Flags beibehalten" sortiert jede Liste (Ports, Volumes, Umgebung) alphabetisch, anstatt die Reihenfolge beizubehalten, in der Sie sie eingegeben haben, was einen generierten Diff einfacher überprüfen kann.

Alles läuft lokal in Ihrem Browser — kein Befehl, kein Image-Name oder keine Umgebungsvariable wird jemals irgendwo versendet. Kopieren Sie das Ergebnis, laden Sie es als .txt-Datei herunter oder senden Sie die Ausgabe zurück in die Eingabe, um sie weiter zu verfeinern.

Häufige Fragen

Kann ich mehrere docker run-Befehle auf einmal konvertieren?
Ja. Fügen Sie einen docker run-Befehl pro Zeile ein (oder verwenden Sie einen nachgestellten Backslash, um einen Befehl über mehrere Zeilen fortzusetzen) und jeder wird zu einem separaten Service in der generierten Compose-Datei.
Was passiert mit Flags, die Compose nicht ausdrücken kann, wie --rm?
Sie werden nicht stillschweigend gelöscht. Jedes nicht unterstützte Flag wird als Kommentar neben dem Service aufgelistet, zu dem es gehört, damit Sie genau sehen können, was nicht konvertiert wurde.
Konvertiert es auch docker-compose.yml zurück in docker run-Befehle?
Ja. Schalten Sie die Richtungsoption auf "compose → docker run" um und fügen Sie eine Compose-Datei ein; das Tool gibt einen docker run-Befehl pro Service aus.
Warum würde ich Umgebungsvariablen in eine separate .env-Datei einfügen, anstatt sie in die Compose-Datei zu legen?
Es hält Geheimnisse und umgebungsspezifische Werte aus der Versionskontrolle heraus, wenn die Compose-Datei selbst committed wird. Wählen Sie "Separate .env-Datei" und das Tool verschiebt die Variablen dorthin und verweist auf sie mit env_file:.
Wird mein Befehl oder meine Compose-Datei irgendwo hochgeladen?
Nein. Die Konvertierung läuft vollständig in Ihrem Browser mit JavaScript — nichts, das Sie einfügen, verlässt jemals Ihr Gerät.