docker run in docker-compose.yml umwandeln

docker run in docker-compose umwandeln: Befehl einfügen und eine compose.yaml mit Ports und Volumes, Umgebung, Netzwerken, Healthcheck und Limits erhalten.

docker run
compose.yaml

    Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.

    So wird umgewandelt
    docker rundocker-compose.yml
    --name webcontainer_name: web
    -p 8080:80ports: ["8080:80"]
    -v ./daten:/data, -v name:/datavolumes: (benannte Volumes zusätzlich oben auf Projektebene)
    --mount type=bind,src=…,dst=…lange Volume-Syntax mit type, source, target
    -e KEY=wert, --env-file .envenvironment:, env_file:
    --restart unless-stoppedrestart: unless-stopped
    --network netznetworks: plus Netzwerk als external
    --network hostnetwork_mode: host
    -w /app, -u 1000:1000working_dir:, user:
    --memory 512m, --cpus 1.5mem_limit:, cpus:
    --health-cmd …healthcheck: test: ["CMD-SHELL", …]
    --log-opt max-size=10mlogging: options:
    -itstdin_open: true, tty: true
    --gpus alldeploy: resources: reservations: devices:
    --rm, -dentfallen; Compose startet mit up -d und entfernt mit down

    Von docker run zur Compose-Datei

    Dieses Werkzeug wandelt einen Befehl docker run in docker-compose um: Fügen Sie den Befehl ein, auch mehrzeilig mit Backslash, und Sie erhalten eine fertige compose.yaml. Übernommen werden Name, Ports und Volumes, Umgebungsvariablen, Netzwerke, Neustart-Regel, Benutzer, Arbeitsverzeichnis, Ressourcenlimits, Healthcheck, Logging, Capabilities, Geräte, GPUs sowie Image und Befehl. So lässt sich eine docker-compose.yml erstellen, ohne jede Option in der Dokumentation nachzuschlagen. Optionen ohne Gegenstück werden aufgelistet.

    Warum Compose? Ein langer docker-run-Befehl gerät schnell in Vergessenheit, die Compose-Datei dagegen liegt versioniert im Projekt. Gestartet wird mit docker compose up -d, gestoppt und entfernt mit docker compose down. Der heutige Dateiname ist compose.yaml; docker-compose.yml wird weiter erkannt. Die früher übliche Zeile version: ist veraltet und wird deshalb nicht erzeugt. Ports schreibt der Generator immer in Anführungszeichen, weil YAML Angaben wie 22:22 sonst als Zahl im Sechzigersystem lesen kann.

    Grenzen: Der Docker Compose Generator kennt die gängigen Optionen, aber nicht jede. Relative Pfade wie ./html beziehen sich in Compose auf den Ordner der Compose-Datei, bei docker run auf das aktuelle Verzeichnis. Netzwerke, die mit docker run vorhanden sein mussten, werden als external eingetragen; soll Compose sie selbst anlegen, entfernen Sie diese Zeile. Für Shell-Variablen wie $HOME im Befehl gilt: Compose setzt sie beim Start ebenfalls ein, sofern sie in der Umgebung oder einer .env-Datei stehen.

    Anleitung: docker run in docker-compose in 4 Schritten

    1. Den docker-run-Befehl in das Feld „docker run“ einfügen, auch mehrzeilig mit Backslash, oder mit „Beispiel“ ein Muster laden.
    2. Die erzeugte compose.yaml mit Ports, Volumes, Umgebung, Netzwerken und Healthcheck prüfen.
    3. Die Liste der Optionen ohne Gegenstück lesen und diese bei Bedarf von Hand ergänzen.
    4. Die Datei kopieren oder „compose.yaml herunterladen“ und mit docker compose up -d starten.

    Typische Anwendungsfälle

    • Einen Befehl aus einer README, etwa für Nextcloud, Home Assistant oder eine Datenbank, dauerhaft als Compose-Datei ablegen.
    • Mehrere Container eines Servers in eine versionierte Konfiguration überführen.
    • Einen lang gewachsenen docker-run-Befehl mit vielen -e- und -v-Optionen übersichtlich machen.
    Fragen

    Häufige Fragen

    Wie starte ich die erzeugte Datei?

    Speichern Sie sie als compose.yaml in einem eigenen Ordner und führen Sie dort docker compose up -d aus. Mit docker compose logs -f sehen Sie die Ausgabe, mit docker compose down stoppen und entfernen Sie den Dienst.

    Brauche ich noch version: in der Compose-Datei?

    Nein. Die Angabe ist seit der Compose Specification veraltet; aktuelle Versionen von Docker Compose ignorieren sie und geben eine Warnung aus.

    Was passiert mit -d und --rm?

    Beide entfallen. Ob Container im Hintergrund laufen, bestimmen Sie beim Aufruf mit docker compose up -d. Entfernt werden Container mit docker compose down.

    Warum stehen die Ports in Anführungszeichen?

    YAML kann Werte wie 22:22 als Zahl im Sechzigersystem deuten. In Anführungszeichen bleiben Ports immer Text, so wie Compose sie erwartet.

    Was ist mit benannten Volumes?

    Ein Volume wie -v daten:/var/lib/mysql wird unter volumes beim Dienst eingetragen und zusätzlich auf oberster Ebene deklariert. Compose legt es beim ersten Start an und behält es bei down; erst down -v löscht es.

    Wie wandle ich einen laufenden Container in eine Compose-Datei um?

    Docker selbst gibt den ursprünglichen Befehl nicht aus. Die Einstellungen stehen aber in docker inspect containername; daraus lässt sich ein docker-run-Befehl rekonstruieren und hier umwandeln. Prüfen Sie das Ergebnis, weil inspect auch Standardwerte enthält.

    Was ist der Unterschied zwischen docker-compose und docker compose?

    docker-compose mit Bindestrich ist das ältere, eigenständige Programm in Python. docker compose mit Leerzeichen ist das aktuelle Plugin der Docker-CLI. Beide lesen dieselben Compose-Dateien, neue Installationen nutzen docker compose.

    Weitere Werkzeuge

    Das könnte auch helfen

    Alle 358 Werkzeuge