Files
podman/docs/podman-exec.1.md
Peter Hunt a1a79c08b7 Implement conmon exec
This includes:
	Implement exec -i and fix some typos in description of -i docs
	pass failed runtime status to caller
	Add resize handling for a terminal connection
	Customize exec systemd-cgroup slice
	fix healthcheck
	fix top
	add --detach-keys
	Implement podman-remote exec (jhonce)
	* Cleanup some orphaned code (jhonce)
	adapt remote exec for conmon exec (pehunt)
	Fix healthcheck and exec to match docs
		Introduce two new OCIRuntime errors to more comprehensively describe situations in which the runtime can error
		Use these different errors in branching for exit code in healthcheck and exec
	Set conmon to use new api version

Signed-off-by: Jhon Honce <jhonce@redhat.com>

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-07-22 15:57:23 -04:00

99 lines
2.9 KiB
Markdown

% podman-exec(1)
## NAME
podman\-exec - Execute a command in a running container
## SYNOPSIS
**podman exec** [*options*] *container* [*command* [*arg* ...]]
## DESCRIPTION
**podman exec** executes a command in a running container.
## OPTIONS
**--detach-keys**=*sequence*
Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.
**--env**, **-e**
You may specify arbitrary environment variables that are available for the
command to be executed.
**--interactive**, **-i**=*true|false*
When set to true, keep stdin open even if not attached. The default is *false*.
**--latest**, **-l**
Instead of providing the container name or ID, use the last created container. If you use methods other than Podman
to run containers such as CRI-O, the last started container could be from either of those methods.
The latest option is not supported on the remote client.
**--preserve-fds**=*N*
Pass down to the process N additional file descriptors (in addition to 0, 1, 2). The total FDs will be 3+N.
**--privileged**
Give the process extended Linux capabilities when running the command in container.
**--tty**, **-t**
Allocate a pseudo-TTY.
**--user**, **-u**
Sets the username or UID used and optionally the groupname or GID for the specified command.
The following examples are all valid:
--user [user | user:group | uid | uid:gid | user:gid | uid:group ]
**--workdir**, **-w**=*path*
Working directory inside the container
The default working directory for running binaries within a container is the root directory (/).
The image developer can set a different default with the WORKDIR instruction, which can be overridden
when creating the container.
## Exit Status
The exit code from `podman exec` gives information about why the command within the container failed to run or why it exited. When `podman exec` exits with a
non-zero code, the exit codes follow the `chroot` standard, see below:
**_125_** if the error is with podman **_itself_**
$ podman exec --foo ctrID /bin/sh; echo $?
Error: unknown flag: --foo
125
**_126_** if the **_contained command_** cannot be invoked
$ podman exec ctrID /etc; echo $?
Error: container_linux.go:346: starting container process caused "exec: \"/etc\": permission denied": OCI runtime error
126
**_127_** if the **_contained command_** cannot be found
$ podman exec ctrID foo; echo $?
Error: container_linux.go:346: starting container process caused "exec: \"foo\": executable file not found in $PATH": OCI runtime error
127
**_Exit code_** of **_contained command_** otherwise
$ podman exec ctrID /bin/sh -c 'exit 3'
# 3
## EXAMPLES
$ podman exec -it ctrID ls
$ podman exec -it -w /tmp myCtr pwd
$ podman exec --user root ctrID ls
## SEE ALSO
podman(1), podman-run(1)
## HISTORY
December 2017, Originally compiled by Brent Baude<bbaude@redhat.com>