mirror of
https://github.com/docker/docs.git
synced 2026-03-27 22:38:54 +07:00
The updated version uses new anchors for flags, so updates are needed elsewhere to update those anchors. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
146 lines
5.8 KiB
YAML
146 lines
5.8 KiB
YAML
command: docker exec
|
|
short: Run a command in a running container
|
|
long: |-
|
|
The `docker exec` command runs a new command in a running container.
|
|
|
|
The command started using `docker exec` only runs while the container's primary
|
|
process (`PID 1`) is running, and it is not restarted if the container is
|
|
restarted.
|
|
|
|
COMMAND runs in the default directory of the container. If the underlying image
|
|
has a custom directory specified with the WORKDIR directive in its Dockerfile,
|
|
this directory is used instead.
|
|
|
|
COMMAND must be an executable. A chained or a quoted command does not work.
|
|
For example, `docker exec -it my_container sh -c "echo a && echo b"` works,
|
|
work, but `docker exec -it my_container "echo a && echo b"` does not.
|
|
usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
|
|
pname: docker
|
|
plink: docker.yaml
|
|
options:
|
|
- option: detach
|
|
shorthand: d
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: 'Detached mode: run command in the background'
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: detach-keys
|
|
value_type: string
|
|
description: Override the key sequence for detaching a container
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: env
|
|
shorthand: e
|
|
value_type: list
|
|
description: Set environment variables
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: env-file
|
|
value_type: list
|
|
description: Read in a file of environment variables
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: interactive
|
|
shorthand: i
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: Keep STDIN open even if not attached
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: privileged
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: Give extended privileges to the command
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: tty
|
|
shorthand: t
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: Allocate a pseudo-TTY
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: user
|
|
shorthand: u
|
|
value_type: string
|
|
description: 'Username or UID (format: <name|uid>[:<group|gid>])'
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: workdir
|
|
shorthand: w
|
|
value_type: string
|
|
description: Working directory inside the container
|
|
deprecated: false
|
|
min_api_version: "1.35"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
examples: "### Run `docker exec` on a running container\n\nFirst, start a container.\n\n```console\n$
|
|
docker run --name mycontainer -d -i -t alpine /bin/sh\n```\n\nThis creates and starts
|
|
a container named `mycontainer` from an `alpine` image\nwith an `sh` shell as its
|
|
main process. The `-d` option (shorthand for `--detach`)\nsets the container to
|
|
run in the background, in detached mode, with a pseudo-TTY\nattached (`-t`). The
|
|
`-i` option is set to keep `STDIN` attached (`-i`), which\nprevents the `sh` process
|
|
from exiting immediately.\n\nNext, execute a command on the container.\n\n```console\n$
|
|
docker exec -d mycontainer touch /tmp/execWorks\n```\n\nThis creates a new file
|
|
`/tmp/execWorks` inside the running container\n`mycontainer`, in the background.\n\nNext,
|
|
execute an interactive `sh` shell on the container.\n\n```console\n$ docker exec
|
|
-it mycontainer sh\n```\n\nThis starts a new shell session in the container `mycontainer`.\n\n###
|
|
<a name=\"env\"></a> Set environment variables for the exec process (--env, -e)\n\nNext,
|
|
set environment variables in the current bash session.\n\nBy default, the `docker
|
|
exec` command, inherits the environment variables that\nare set at the time the
|
|
container is created. Use the `--env` (or the `-e` shorthand)\nto override global
|
|
environment variables, or to set additional environment variables\nfor the process
|
|
started by `docker exec`.\n\nThe example below creates a new shell session in the
|
|
container `mycontainer` with\nenvironment variables `$VAR_A` and `$VAR_B` set to
|
|
\"1\" and \"2\" respectively.\nThese environment variables are only valid for the
|
|
`sh` process started by that\n`docker exec` command, and are not available to other
|
|
processes running inside\nthe container.\n\n```console\n$ docker exec -e VAR_A=1
|
|
-e VAR_B=2 mycontainer env\nPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\nHOSTNAME=f64a4851eb71\nVAR_A=1\nVAR_B=2\nHOME=/root\n```\n\n###
|
|
<a name=\"workdir\"></a> Set the working directory for the exec process (--workdir,
|
|
-w)\n\nBy default `docker exec` command runs in the same working directory set when
|
|
\nthe container was created.\n\n```console\n$ docker exec -it mycontainer pwd\n/\n```\n\nYou
|
|
can specify an alternative working directory for the command to execute \nusing
|
|
the `--workdir` option (or the `-w` shorthand):\n\n```console\n$ docker exec -it
|
|
-w /root mycontainer pwd\n/root\n```\n\n\n### Try to run `docker exec` on a paused
|
|
container\n\nIf the container is paused, then the `docker exec` command fails with
|
|
an error:\n\n```console\n$ docker pause mycontainer\nmycontainer\n\n$ docker ps\n\nCONTAINER
|
|
ID IMAGE COMMAND CREATED STATUS PORTS NAMES\n482efdf39fac
|
|
\ alpine \"/bin/sh\" 17 seconds ago Up 16 seconds (Paused) mycontainer\n\n$
|
|
docker exec mycontainer sh\n\nError response from daemon: Container mycontainer
|
|
is paused, unpause the container before exec\n\n$ echo $?\n1\n```"
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
|