Docker/Podman Composer
Turn docker run and podman run into a Compose file and back into a start script — entirely in the browser. Your entry point to the manual, examples, and tips.
From a long run command to a Compose file — and back
The Docker/Podman Composer translates between two ways of describing the same containers: the single-line (often very long) docker run or podman run command, and the structured Compose file (compose.yaml). It works in both directions — feed it one or more run commands and you get the matching Compose YAML, networks and volumes included; paste a Compose file and you get a ready-to-run start script with one run command per service.
That solves an everyday annoyance: a docker run with a dozen flags is hard to read, hard to version, and hard to maintain. A Compose file is none of those. Conversely, plenty of docs, issues, and tutorials hand you a run one-liner that you'd rather slot into your existing docker-compose.yml. The Composer saves you the retyping and the flag lookups.
The tool is built for everyone who works with containers: developers moving a run command from a tutorial into their Compose setup; DevOps and ops people documenting ad-hoc containers as Compose services after the fact; and anyone who quickly needs the run equivalent of a Compose service to test a single container by hand.
What the tool does — at a glance
The interface is in English and split into three tabs. Conversion happens live as you type — there's no convert button to press.
- Run → Compose — enter one or more
docker run/podman runcommands, includingdocker network createanddocker volume create. Everyrunbecomes a service; networks and named volumes are declared at the top level so the file is valid. The tokenizer understands shell quoting,\line breaks, flag bundles like-dp 80:80, and--mount. The YAML output is editable (an "editable" badge) and can be copied or downloaded ascompose.yaml. - Compose → Run — enter a Compose file, get a shell script: networks first (created only if they don't exist yet), then one
runper service independs_onorder, with adocker buildin front when the service hasbuild:. A radio switch picks docker or podman; copy the result or download it asrun.sh. - Reference — a built-in "Flag Reference: docker run → Compose" table, a list of Compose-only features, an overview of restart policies, and a few tips. A lookup sheet right inside the tool.
Above the tabs sits the optional Compose project name field. Compose names networks, volumes, and containers after the project (myapp_default, myapp-web-1). Run → Compose writes it into the file as name:; Compose → Run uses it to reproduce exactly the names Compose would assign. Dollar signs keep their meaning along the way — $HOME stays a variable, while a literal '$5' becomes $$5 in Compose and turns back into '$5' in the script.
All editors are built on the ACE editor with syntax highlighting for shell and YAML. Each input field has an Example button (loads a sample) and a Clear button (empties the field). Anything that couldn't be translated is listed below the output — errors in red, warnings in yellow.
Fully client-side — nothing leaves your browser
Important for privacy and understanding: the Composer runs entirely in your browser. The whole conversion pipeline — command-line tokenizer, flag parser, YAML serializer, and the YAML parser for the reverse direction — is local JavaScript. There is no server fetch, no API, and no upload: neither your run commands nor your Compose file are sent anywhere. So you can safely use the tool with commands that contain passwords, tokens, or internal hostnames. The compose.yaml and run.sh downloads are produced locally as file blobs, too. The only things the tool keeps in your browser's localStorage are the project name and your runtime choice — never your input.
Try it now
→ Open the Docker/Podman Composer — paste run commands or Compose YAML, then copy or download the result. No account, free, right in the browser. If you'd like to see it in action first, the Example button in each tab loads a ready-made sample: in the run tab, a shared network with an nginx web server and a Node app; in the Compose tab, a project with build, depends_on, two networks, and resource limits.
Related JPKCom tools
- Docker cheat sheet — the key
dockercommands and flags to look up when you build a run command by hand. - Docker Compose cheat sheet — the structure and commands of
docker compose, the perfect companion for the generated YAML. - Podman cheat sheet — the
podmanequivalents, in case you generate commands for Podman. - Cron generator — build crontab lines, for example to schedule a recurring container job.
There's more on the subpages: the manual with both conversion directions, every supported flag, and the structure of the start script, hands-on examples, and a collection of tips & tricks.