mirror of
https://github.com/containers/podman.git
synced 2025-06-16 22:57:06 +08:00

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>
99 lines
2.9 KiB
Markdown
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>
|