How to use
- docker run …
Paste a docker run command
- compose.yamlDependency diagram (SVG)
Convert to compose.yaml
- docker run (bash etc.)
Convert back to docker run
Pick the direction at the top. “Validate & format” checks a compose.yaml; “docker run → compose” and “compose → docker run” convert.
Paste commands or a compose.yaml into the input pane, or click “Open file”. The sample button lets you try the screen.
The “Result” view shows the converted (or formatted) code. “Findings” lists errors, points to confirm and notes with line numbers, and “Dependency graph” shows start order and depends_on.
Turn on “Hide secret-looking values in the output” before sharing. When formatting you can choose the indent, key order, port quoting and removal of version:.
Copy the result or download it. The graph can be saved as SVG.
What it does
docker run → compose
Converts several commands at once (multi-line, with \ or ` continuations) into services. About 90 options are handled, including -p, -v, --mount, -e, --env-file, --name, --restart, --network, -w, -u, --entrypoint, --health-*, --cap-add, --privileged, --gpus and -it; options it cannot convert are listed. $(pwd) becomes ./.
compose → docker run
Generates one docker run per service (bash and PowerShell), ordered by depends_on. Items that docker run cannot express (build, deploy replicas…) are listed.
Validated with the official schema
Checks against the Compose Specification JSON Schema (bundled, version pinned) and reports unknown keys, wrong types and missing required keys with line and column. YAML syntax errors and duplicate keys come with positions too.
Common mistakes
Finds the obsolete version:, unquoted ports like 22:22, references to undefined networks, volumes and services, depends_on cycles, service_healthy without a healthcheck, malformed ${VAR:-default} interpolation and duplicate host ports.
Security points to confirm
Lists privileged, a /var/run/docker.sock mount, network_mode: host, cap_add ALL / SYS_ADMIN, ports open on 0.0.0.0 (with a 127.0.0.1 suggestion), passwords and tokens in environment (values are hidden), the latest tag and running as root. It does not give verdicts.
Formatting and dependency graph
Orders keys conventionally and unifies indentation and port quoting (comments are kept). Service dependencies are drawn as an SVG laid out by start order, and as text. No external library is used.
Use cases
- Rewrite a docker run example from a README as a compose.yaml
- Find why a compose.yaml does not work (indentation, key typos, undefined networks or volumes)
- Check a compose.yaml before publishing for privileged, docker.sock mounts or ports open on 0.0.0.0
- Bring the version: line and port syntax of a docker-compose.yml up to date
- See depends_on relations and start order as a graph
Supported formats
Input
Output
Capability matrix
| Feature | Support | Notes |
|---|---|---|
| Convert docker run to compose | Supported | Several commands and multi-line input; unsupported options are listed |
| Convert compose to docker run | Partial | Items docker run lacks (build, depends_on, deploy replicas, secrets…) are not converted and are listed |
| Validate YAML syntax and the Compose Specification | Supported | With line and column; files referenced by include or extends are not read |
| Security points to confirm | Partial | Only points out what is written; it is not a guarantee of safety |
| Formatting, key reordering, dependency graph | Supported | Keys are not reordered when anchors (&) or aliases (*) are present |
| Starting containers or checking they run | Not supported | Nothing is started. Use docker compose config or docker compose up to confirm |
| Pulling images or scanning for vulnerabilities | Not supported | Image contents and vulnerabilities are not examined. No network access |
| Shell expansion ($(...), variable values) | Not supported | Command substitution other than $(pwd) is not run; variables stay as Compose interpolation |
| Offline use | Supported | Works without a connection once loaded |
Limits & notes
- Input is limited to 500,000 characters.
- Up to 200 services and 200 YAML alias expansions.
- Up to 300 findings are shown, and up to 40 schema findings.
- Processing is stopped after 20 seconds.
- docker run is read line by line and everything after a pipe, ; or && is ignored. Multiple YAML documents (---) are not supported.
- The schema is the Compose Specification (compose-spec/compose-spec, as of 2026-09-11). Some Docker Compose versions accept different items.
Privacy & safety
Pasted compose files, docker run commands and loaded files are processed only inside your browser. Nothing is sent to or stored on any server. Password and token detection also runs on your device, and only masked values are shown.
FAQ
How do I convert docker run to docker-compose.yml (compose.yaml)?
Can I validate a docker compose file?
Do I need version: in a compose file?
Why quote ports like "80:80"?
Do the security findings mean something is wrong?
Is my compose file sent to a server?
Related tools
YAML / TOML Studio — Validate, Format & Convert
Paste YAML, TOML or JSON to validate, format or convert it. Errors show the exact line and column, and type traps such as “no becomes false” and anything lost in conversion are flagged up front. Your data never leaves your device.
Secret Scanner
Paste text or drop config and code files to list likely secrets with file, line and rule before you publish or share them. Values are masked by default and you can save a copy with them replaced by ***. A helper only — it cannot guarantee that nothing is missed.
curl Converter
Paste “Copy as cURL” from Chrome or Firefox to see the method, URL, headers, cookies and body in tables, then convert to 12 kinds of code. The request is never sent and everything runs in your browser. Authorization and cookies can be hidden before you share.
Mermaid Studio
Write Mermaid code on the left and the diagram appears on the right. Start from a flowchart, sequence, class or ER template and save SVG or PNG with the scale and background you choose. Rendering happens in your browser; your code is never sent.
Dockerfile Studio
Paste a Dockerfile to check its syntax, stages and common mistakes. Secret-looking values and points to confirm, such as curl | sh, are listed with line numbers. You can also format it or generate starter files for Node.js, Python, Go, a static site or Java. Nothing is built, and your input never leaves your device.
nginx Config Studio
Build a reverse proxy, SPA, PHP-FPM or HTTP-to-HTTPS redirect config from a form, or paste your nginx.conf to list syntax errors and easy-to-miss points. Everything runs in your browser and nginx is never executed.
Last updated: