Docker Run zu Compose
Machen Sie aus einem docker-run-Befehl eine fertige docker-compose.yml-Datei.
Docker Run zu Compose wird geladen… Wenn nichts passiert, aktiviere JavaScript.
Die meisten Projekte beginnen mit einer einzelnen docker-run-Zeile aus einer README und enden als Wand von Optionen, die niemand noch einmal tippen möchte. Fügen Sie den Befehl hier ein, und dieses Werkzeug schreibt ihn als docker-compose.yml um und ordnet jede erkannte Option dem passenden Compose-Schlüssel zu: aus -p wird ports, aus -v wird volumes, aus -e wird environment, aus --restart wird restart, und so weiter für rund siebzig Optionen, einschließlich Healthchecks, Ressourcengrenzen, Logging-Treibern, Capabilities, Ulimits und GPU-Reservierungen.
Häufig gestellte Fragen
Wird mein docker-run-Befehl an einen Server gesendet?
Welche docker-run-Optionen werden unterstützt?
Warum fehlt -d in der erzeugten Datei?
Brauche ich den Schlüssel version am Anfang der Datei?
Was passiert mit benannten Volumes und Netzwerken?
Kann ich mehrere Container auf einmal umwandeln?
Warum stehen Portangaben in Anführungszeichen?
Versteht das Werkzeug --mount und Healthchecks?
Wie führe ich die fertige Datei aus?
Über Docker Run zu Compose
Der Konverter liest den Befehl so, wie es eine Shell tun würde. Zeilenfortsetzungen mit Backslash, einfache und doppelte Anführungszeichen, kurze Optionen mit angehängtem Wert wie -p8080:80, gebündelte Optionen wie -itd und die Form --option=wert werden alle verarbeitet, Sie können also einen Befehl direkt aus der Dokumentation einfügen, ohne ihn vorher aufzuräumen. Fügen Sie mehrere Befehle ein, einen pro Zeile oder mit && verbunden, und jeder wird zu einem eigenen Dienst in derselben Datei. Benannte Volumes und Netzwerke, die diese Dienste nutzen, werden gesammelt und in den Abschnitten volumes und networks auf oberster Ebene deklariert, und Ports werden in Anführungszeichen gesetzt, damit ein Wert wie 22:22 vom YAML-Parser nicht als Sexagesimalzahl gelesen wird.
Optionen, die nur beim Start eines Containers Sinn ergeben, gehören nicht in eine Compose-Datei, und das Werkzeug sagt es Ihnen, statt sie stillschweigend zu verwerfen: -d wird durch docker compose up -d ersetzt, --rm durch docker compose down, und Optionen wie --cidfile oder --detach-keys erscheinen mit einer kurzen Erklärung unter den Hinweisen. Alles läuft im Browser, ohne Serveraufruf und ohne externe Bibliothek, sodass Befehle mit Passwörtern, privaten Registry-Namen oder internen Image-Namen die Seite nie verlassen. Kopieren Sie das Ergebnis oder laden Sie es als docker-compose.yml herunter und führen Sie im selben Ordner docker compose up -d aus.
Compose hieß anfangs Fig
Vor Docker Compose gab es Fig, ein kleines Python-Werkzeug, das Orchard Laboratories 2013 veröffentlichte. Fig brachte die Idee auf, dass eine Anwendung aus mehreren Containern in einer einzigen YAML-Datei beschrieben und mit einem einzigen Befehl gestartet werden sollte, zu einer Zeit, in der ein Shell-Skript voller docker-run-Zeilen üblich war. Docker kaufte Orchard 2014, und Fig wurde im Jahr darauf zu docker-compose, bei fast unverändertem Dateiformat.
Danach durchlief das Format ein Jahrzehnt der Umbrüche. Version 1 hatte überhaupt keine Schlüssel auf oberster Ebene, Version 2 brachte services, volumes und networks, und Version 3 wurde von Docker Swarm geprägt, weshalb Schlüssel wie deploy bis heute in Dateien auftauchen, die nie einen Swarm sehen werden. Die Nummerierung endete mit der Compose Specification, die die Zweige 2 und 3 zusammenführte und das Feld version überflüssig machte.
Die Neuentwicklung von Python nach Go in Compose V2 änderte auch den Aufruf: aus docker-compose mit Bindestrich wurde docker compose als Unterbefehl der Docker-CLI. Die alte eigenständige Binärdatei erreichte im Juli 2023 ihr Lebensende. Wenn ein Tutorial also noch verlangt, version: '3.8' an den Anfang der Datei zu schreiben, wurde es für ein Werkzeug geschrieben, das Docker nicht mehr ausliefert.