blob: 82d1428d45f7dbede66108f7b3f2e154273495fe [file] [log] [blame] [view] [edit]
Run a process in a running container.
The command started using `docker exec` will only run while the container's primary
process (`PID 1`) is running, and will not be restarted if the container is restarted.
If the container is paused, then the `docker exec` command will wait until the
container is unpaused, and then run
# CAPABILITIES
`privileged` gives the process extended
[Linux capabilities](https://man7.org/linux/man-pages/man7/capabilities.7.html)
when running in a container.
Without this flag, the process run by `docker exec` in a running container has
the same capabilities as the container, which may be limited. Set
`--privileged` to give all capabilities to the process.
# USER
`user` sets the username or UID used and optionally the groupname or GID for the specified command.
The followings examples are all valid:
--user [user | user:group | uid | uid:gid | user:gid | uid:group ]
Without this argument the command will be run as root in the container.
# Exit Status
The exit code from `docker exec` gives information about why the container
failed to exec or why it exited. When `docker exec` exits with a non-zero code,
the exit codes follow the `chroot` standard, see below:
**_126_** if the **_contained command_** cannot be invoked
$ docker exec busybox /etc; echo $?
# exec: "/etc": permission denied
docker: Error response from daemon: Contained command could not be invoked
126
**_127_** if the **_contained command_** cannot be found
$ docker exec busybox foo; echo $?
# exec: "foo": executable file not found in $PATH
docker: Error response from daemon: Contained command not found or does not exist
127
**_Exit code_** of **_contained command_** otherwise
$ docker exec busybox /bin/sh -c 'exit 3'
# 3