wslcontainers
Ask AI wslc 2.9.4.0

docker exec on wslc

Updated 2026-07-27 · 3 min read · wslc public preview

docker exec is identical on wslc 2.9.4.0: the command is wslc exec, same verb, same binary swap. That does not mean every flag or default carries over unchanged, though -- see the measured difference below before assuming a script ports without edits.

Docker commanddocker exec
Status on wslc 2.9.4.0Identical
wslc commandwslc exec
Verified againstwslc 2.9.4.0, windows-2025 runner

Measured detail. Has -i, -t, -u, -w, -e, --env-file, -d. Also available as wslc container exec.

The wslc equivalent

# Docker
docker exec

# wslc
wslc exec

wslc exec [<options>] <container-id> <command> [<arguments>...]

Straight from wslc exec --help on wslc 2.9.4.0 .

ArgumentMeaning
container-idContainer ID
commandThe command to run
argumentsArguments to pass to the command being executed inside the container
FlagMeaning
-d,--detachRun container in detached mode
-e,--envKey=Value pairs for environment variables
--env-fileFile containing key=value pairs of env variables
-i,--interactiveAttach to stdin and keep it open
-t,--ttyOpen a TTY with the container process.
-u,--userUser ID for the process (name|uid|uid:gid)
-w,--workdirWorking directory inside the container

How we know

Confirmed by reading wslc --help output and, where the behaviour depends on execution rather than argument parsing, by running the command against wslc 2.9.4.0 on a Windows Server 2025 GitHub Actions runner. Unrecognized flags and subcommands fail loudly on wslc -- the parser answers Argument name was not recognized for the current command and exits non-zero -- so a typo is unlikely to be misread as support. The risk runs the other way: a Docker habit that happens to parse (like wslc ps still working) can mask a difference in what the flags underneath it do.

Claims on this site are re-checked by a scheduled workflow that runs the commands again on a fresh Windows Server 2025 runner and fails when a documented behaviour stops matching reality. wslc ships roughly every two weeks during the preview, so treat any page that disagrees with your own machine as the page being stale, and check the version you are on with wslc version.

Where this fits

This is one row of the full Docker to wslc cheat sheet, which covers every command and every flag on a single page. If the workload you are porting uses Docker Compose rather than bare docker invocations, start from Compose key support instead -- docker exec rarely appears verbatim in a compose.yaml, and the key-level page maps YAML fields directly to the flags shown above. For a whole script at once, paste it into the command converter and get every line classified in the same pass.

Related guides