docker run zu Docker Compose
Wandeln Sie docker-run-Befehle in eine compose.yaml um – ein Service pro Befehl, mit Ports, Volumes, Umgebungsvariablen und GPUs.
Eingabe
Ergebnis
Das Ergebnis erscheint hier.READMEs von Projekten beginnen meist mit einem docker-run-Befehl, doch sobald Sie mehr als einen Container betreiben – Open WebUI neben Ollama, eine App neben ihrer Datenbank –, ist eine compose.yaml viel einfacher zu pflegen. Fügen Sie einen oder mehrere docker-run-Befehle ein, und dieses Werkzeug konvertiert jeden mit composerize, dem Open-Source-Konverter hinter composerize.com, und fasst die Ergebnisse in einer Compose-Datei zusammen: Ports, Volumes, Umgebungsvariablen, Restart-Policy, zusätzliche Hosts und GPU-Reservierungen landen jeweils unter dem richtigen Schlüssel ihres eigenen Service.
So arbeitet es
- Schreiben Sie einen Befehl pro Zeile oder verbinden Sie sie mit &&; Zeilenfortsetzungen mit Backslash, ein vorangestellter $-Prompt, sudo und podman run werden alle verstanden.
- Jeder Service wird nach dem --name des Containers benannt; fehlt dieser, erhält er den Namen des Images, und ein doppelter Name bekommt das Suffix -2, damit kein Container einen anderen überschreibt.
- Wählen Sie das aktuelle Compose-Dateiformat, das keinen version-Schlüssel hat, oder die älteren Formate 3.x und 2.x, die mit version: beginnen, sowie eine Einrückung von zwei oder vier Leerzeichen.
- Der Platzhalter-Projektname, den composerize schreibt, wird entfernt, weil Compose ihn ablehnen würde; Compose benennt das Projekt dann nach dem Ordner, in dem die Datei liegt.
Wohin Ihre Daten gehen
Nirgendwohin. Dieses Werkzeug läuft vollständig in Ihrem Browser: Der eingefügte Text wird von der Seite verarbeitet und weder an einen Server übertragen noch protokolliert.
Dieses Tool ist kostenlos und braucht kein Konto. Die Ergebnisse existieren nur in Ihrer geöffneten Seite und werden nirgends gespeichert.
Was es kostet
Dieses Werkzeug ist kostenlos, ohne Anmeldung und ohne Punkte.
Häufige Fragen
- Warum sind meine benannten Volumes als external: true markiert?
- Weil ein benanntes Volume aus docker run – -v ollama:/root/.ollama – bereits mit Ihren Daten darin existiert. Als external markiert, verwendet Compose genau dieses Volume. Ohne die Markierung würde Compose ein neues, leeres Volume mit dem Projektnamen als Präfix anlegen. Der Kommentar über der Datei weist darauf hin. Wenn Sie neu beginnen, löschen Sie die external-Zeilen, und Compose legt die Volumes selbst an.
- Wird --gpus all übernommen?
- Ja. Daraus wird ein Eintrag unter deploy.resources.reservations.devices mit driver nvidia, count all und der Capability gpu – so fordert Compose GPUs an. Das NVIDIA Container Toolkit muss auf dem Host trotzdem installiert sein, genau wie bei docker run.
- Sollte ich die version:-Zeile behalten?
- Für aktuelles Docker nicht. Die Compose Specification, die docker compose (v2) umsetzt, ignoriert version und gibt eine Warnung aus, dass es veraltet ist; deshalb lässt das Standardformat die Zeile weg. Wählen Sie 3.x oder 2.x nur, wenn die Datei vom alten docker-compose 1.x oder von einem Werkzeug gelesen wird, das diesen Schlüssel erwartet.
- Was ist, wenn eine Option nicht konvertiert wird?
- composerize bildet die meisten docker-run-Optionen ab; die wenigen ohne Compose-Entsprechung fehlen in der Datei. Vergleichen Sie das Ergebnis mit dem ursprünglichen Befehl, bevor Sie sich darauf verlassen, besonders bei ungewöhnlichen Flags – und denken Sie daran, dass der Image-Name nach allen Optionen stehen muss, wie es docker run selbst verlangt.
Das Open Source dahinter
Dieses Werkzeug läuft auf composerize/composerize, veröffentlicht unter MIT. Wer dasselbe Verhalten im eigenen Programm braucht, greift zu dieser Bibliothek.
composerize/composerizeAuch bekannt als
- docker run zu docker compose
- docker run to compose
- composerize
- docker befehl in compose umwandeln
- docker compose generator
- docker run in yaml