Zum Inhalt springen

Docker Run to Compose · Docker

docker run in docker compose umwandeln — und zurück.

Sie möchten einen docker run in docker compose umwandeln? Fügen Sie den Befehl ein und erhalten Sie das äquivalente docker-compose.yml-Service-YAML, oder fügen Sie einen Compose-Service ein, um die Befehlszeile wieder aufzubauen. Sofort, direkt im Browser. Ohne Installation, ohne Anmeldung.

Läuft in Ihrem Browser — nichts, was Sie einfügen, verlässt diese Seite. Wie wir das belegen

Läuft in Ihrem Browser Keine Anmeldung Bidirektional Aktualisiert am 29.07.2026

Docker Run to Compose Konverter Playground

docker run input

Runs entirely in your browser — nothing is uploaded.

Tip: press Esc to release keyboard focus from the editor.

Output

Pick a mode, load an example or paste your own, then convert to see the result here.

Die Lücke

Ein Container, zwei Formen.

Ein docker run-Befehl ist großartig für einen schnellen Start, aber in dem Moment, in dem Sie ihn reproduzierbar haben wollen — in der Versionskontrolle, in einem PR geprüft, mit einem einzigen Befehl gestartet — brauchen Sie eine docker-compose.yml. Eine Wand aus -p-, -v- und -e-Flags von Hand zu übersetzen ist mühsam und fehleranfällig: Es ist leicht, ein Flag wegzulassen, eine Liste falsch zu verschachteln oder einen Port falsch zu zitieren.

Dieser Konverter erledigt den mechanischen Teil für Sie, in beide Richtungen. Sie können online und kostenlos einen docker run Befehl in Compose konvertieren: Er tokenisiert den Befehl genau so, wie es eine Shell tun würde — unter Beachtung von Anführungszeichen, gebündelten Kurz-Flags und Zeilenfortsetzungen — ordnet jedes Flag dem passenden Compose-Schlüssel zu und gibt deterministisches YAML aus. In die andere Richtung baut er einen lauffähigen Befehl aus einem Service wieder auf und informiert Sie über die Schlüssel (depends_on, build, deploy), die schlicht kein Befehls-Äquivalent haben.

Alles läuft in Ihrem Browser, sodass Sie Befehle konvertieren können, die private Registries oder secret-tragende Umgebungsvariablen nennen, ohne dass etwas den Tab verlässt. Siehe die docker run-Referenz und die Compose-Services-Referenz.

Sehen Sie die vollständige Flag-zu-Schlüssel-Zuordnung, oder probieren Sie das Live-Playground oben aus.

Die Pipeline

So funktioniert es.

Fünf deterministische Schritte laufen bei jeder Konvertierung von Anfang bis Ende durch — jedes Mal komplett in Ihrem Browser-Tab.

  1. Den Befehl tokenisieren.

    Ein POSIX-bewusster Tokenizer zerlegt die Zeile und respektiert dabei einfache und doppelte Anführungszeichen sowie Backslash-Zeilenumbruch-Fortsetzungen, sodass zitierte Werte und mehrzeilige Einfügungen intakt bleiben.

  2. Das Präfix entfernen.

    Ein führendes docker run oder docker container run wird entfernt, und gebündelte Kurz-Flags wie -it oder -itp werden in ihre einzelnen Flags expandiert.

  3. Jedes Flag klassifizieren.

    Jedes Flag wird einem Service-Objekt zugeordnet — ports, volumes, environment, networks, capabilities, limits, labels und healthcheck — und das erste Positionsargument wird zum Image, der Rest zum command.

  4. Deterministisches YAML ausgeben.

    Ein kleiner, handgeschriebener Writer gibt einen stabilen, diff-freundlichen services:-Block aus, der nach dem Container-Namen (oder app) verschlüsselt ist und nur die Skalare zitiert, die YAML erfordert.

  5. Oder umgekehrt.

    Im compose → run-Modus wird dasselbe Modell aus geparstem Compose-YAML in einen docker run-Befehl wieder aufgebaut, wobei reine Compose-Schlüssel als Warnungen aufgeführt werden.

Referenz

Jedes Flag, zugeordnet.

Die docker run-Flags, die der Konverter erkennt, und die docker-compose-Schlüssel, denen sie zugeordnet werden. Alles Unbekannte wird als Hinweis gemeldet, statt stillschweigend verworfen zu werden.

docker run-Flag Compose-Schlüssel
-p / --publish ports Zitiert, z. B. "8080:80".
-v / --volume, --mount volumes Kurzform source:target[:ro].
-e / --env environment Eine KEY=value-Liste.
--env-file env_file Eine oder mehrere Dateien.
--name container_name Auch der Service-Schlüssel.
--restart restart no / always / unless-stopped …
--network / --net networks host / none → network_mode.
-w / --workdir working_dir
-u / --user user
--entrypoint entrypoint
--hostname hostname
--add-host extra_hosts
--cap-add / --cap-drop cap_add / cap_drop
--privileged privileged
-m / --memory mem_limit
--cpus cpus
-l / --label labels
--health-* healthcheck cmd / interval / timeout / retries.
-i / -t stdin_open / tty
--rm, -d / --detach — (Warnung) Kein Compose-Äquivalent.

Eingabe

docker run
docker run -d -p 8080:80 --name web \
  -v /data:/usr/share/nginx/html:ro \
  --restart unless-stopped nginx:alpine

Ausgabe

docker-compose.yml
services:
  web:
    image: nginx:alpine
    container_name: web
    ports:
      - "8080:80"
    volumes:
      - /data:/usr/share/nginx/html:ro
    restart: unless-stopped

Starten Sie den Service nach dem Konvertieren mit docker compose up -d — dem Compose-Äquivalent des ursprünglichen -d-Flags.

Nächster Schritt

Der Service steht? Validieren Sie die Pipeline und dimensionieren Sie die Pods.

Ein Compose-Service kommt selten allein. Linten Sie die CI, die das Image baut und pusht, mit dem GitLab CI Validator, und wenn Sie den Container nach Kubernetes verschieben, verwandeln Sie seine Speicher- und CPU-Limits in sichere requests/limits mit dem Kubernetes Resource Calculator — beides vollständig in Ihrem Browser.

next.sh
# build, push, deploy
docker build -t app .
docker compose up -d        # ← from this converter
kubectl apply -f deploy.yml # ← size it first

FAQ

Fragen, beantwortet.

Tippen Sie auf eine Frage, um die Antwort aufzuklappen.

Fügen Sie den vollständigen docker run-Befehl in den Konverter ein, wobei der Modus auf run → compose steht, und klicken Sie auf Konvertieren. Er entfernt das führende docker run, ordnet jedes Flag einem Service-Objekt zu, behandelt das erste Nicht-Flag-Token als Image und den Rest als command und gibt einen einsatzbereiten services:-Block aus. So lässt sich ein docker run in docker compose umwandeln — ohne Installation, ohne Docker-Daemon und ohne dass etwas hochgeladen wird.

Ja. Schalten Sie den Modus-Umschalter auf compose → run, fügen Sie eine Service-Definition ein (oder eine vollständige Compose-Datei — der erste Service wird verwendet), und der Konverter rekonstruiert einen äquivalenten docker run-Befehl, einschließlich Ports, Volumes, Umgebung, Netzwerken, Capabilities, Ressourcenlimits und einem healthcheck. So können Sie docker compose in docker run umwandeln. Schlüssel ohne docker run-Äquivalent — depends_on, build, deploy, profiles — werden als Warnungen gemeldet statt übersetzt.

Die gängigen: -p/--publish → ports, -v/--volume und --mount → volumes, -e/--env → environment, --env-file → env_file, --name → container_name, --restart → restart, --network/--net → networks (oder network_mode für host/none), -w/--workdir → working_dir, -u/--user → user, --entrypoint → entrypoint, --hostname → hostname, --add-host → extra_hosts, --cap-add/--cap-drop → cap_add/cap_drop, --privileged → privileged, -m/--memory → mem_limit, --cpus → cpus, -l/--label → labels und die --health-*-Flags → einen healthcheck-Block. -i und -t werden auf stdin_open und tty abgebildet.

Jedes -p oder --publish wird zu einem Eintrag unter ports. Aus -p 8080:80 wird in der docker-compose.yml die Zeile - "8080:80", als Zeichenkette zitiert, damit YAML das host:container-Mapping nicht als Sexagesimalzahl missversteht. Mehrere -p-Flags werden zu einer Liste, und eine Protokoll-Endung wie 53:53/udp bleibt erhalten.

Jedes -v/--volume und jedes --mount wird unter volumes als Kurzform source:target[:ro] aufgeführt. Aus -v /data:/usr/share/nginx/html:ro wird der Listeneintrag - /data:/usr/share/nginx/html:ro. Bind-Mounts, benannte Volumes und der schreibgeschützte :ro-Suffix werden dabei unverändert übernommen.

Jedes -e/--env wird unter environment als KEY=value-Liste geschrieben, und --env-file wird zu env_file. Aus -e NODE_ENV=production wird - NODE_ENV=production. Da alles im Browser läuft, können Sie bedenkenlos auch secret-tragende Umgebungsvariablen konvertieren — sie verlassen Ihren Tab nicht.

Das --restart-Flag wird direkt zum restart-Feld des Service. Aus --restart unless-stopped wird restart: unless-stopped; ebenso werden no, always und on-failure übernommen. Compose verwendet dieselben Richtlinien-Namen wie docker run, sodass das Verhalten beim Neustart identisch bleibt.

Ja. Der Konverter ist kostenlos und läuft zu 100 % clientseitig — es gibt kein Konto, keine Anmeldung und nichts wird auf einen Server hochgeladen. Nach dem ersten Laden funktioniert er offline, da der Befehl oder das YAML vollständig innerhalb Ihres Browser-Tabs tokenisiert und konvertiert wird. Damit lässt sich ein docker run nach docker-compose.yml jederzeit privat umwandeln, auch für interne Befehle mit privaten Registries oder internen Hostnamen.

More free, private DevOps tools.

Der Docker Run to Compose Konverter ist eines von vielen Tools in OpsCanopy — einem wachsenden Schirm browserbasierter Validatoren, Konverter und Tester, die niemals einen Server berühren.

Neu bei Docker?  Zum Docker-Guide →

39 kostenlose Tools, jedes einzelne offlinefähig — opscanopy.com funktioniert ohne Registrierung, und nichts wird hochgeladen.

Verwandte Tools: der GitLab CI-Validator und der Kubernetes-Resource-Calculator. Durchsuchen Sie das vollständige Tools-Verzeichnis.

Nicht verbunden mit, unterstützt von oder gesponsert durch Docker, Inc. Docker, docker run und Docker Compose sind Marken von Docker, Inc., hier ausschließlich beschreibend verwendet, um die Befehls- und Dateiformate zu kennzeichnen, zwischen denen dieses Tool konvertiert.