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
- Wählen Sie docker run → compose oder compose → docker run.
- Fügen Sie Ihre Befehle ein, eine pro Zeile. Backslash-Linienfortsetzung ist in Ordnung, und eine führende
sudowird ignoriert. - Überprüfen Sie die generierte YAML. Benannte Volumes und benutzerdefinierte Netzwerke werden automatisch auf der obersten Ebene deklariert.
- Lesen Sie die Anmerkungen für Optionen, die kein Compose-Äquivalent haben.
- Kopieren Sie die Ausgabe, speichern Sie sie als
compose.yamlund führen Siedocker compose up -daus.
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. --rmund-dhaben 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.