NAME¶
Podman-exec-在运行的容器中执行命令
SYNOPSIS¶
podman exec [options] container [command [arg ...]]
podman container exec [options] container [command [arg ...]]
DESCRIPTION¶
podman exec 在运行的容器中执行命令。
OPTIONS¶
--detach , -d¶
启动EXEC会话,但不要连接到它。该命令在后台运行,完成后会自动删除EXEC会话。这个 podman exec 命令打印EXEC会话的ID,并在启动后立即退出。
--detach-keys = 序列¶
指定拆卸容器的按键顺序。格式为单字符 [a-Z]
or one or more ctrl-<value>
characters where <value>
is one of: a-z
, @
, ^
, [
, ,
or _
。指定“”将禁用此功能。缺省值为 ctrl-p,ctrl-q 。
也可以在中设置此选项 containers.conf (5)归档。
--env , -e = env¶
设置环境变量。
该选项允许在容器内启动进程可用的任意环境变量。如果指定的环境变量没有值,则Podman会检查主机环境中的值,并仅在主机上设置了该变量时才设置该变量。作为特例,如果环境变量以 * 则Podman将在主机环境中搜索以前缀开头的变量,并将这些变量添加到容器中。
--env-file = file¶
读入以行分隔的环境变量文件。
--interactive , -i¶
当设置为时 true ,使stdin保持打开状态,即使未连接。默认为 错误 。
--latest , -l¶
使用上次创建的容器,而不是提供容器名称或ID。注意:最后启动的容器可以来自主机上Podman的其他用户。(此选项不适用于远程Podman客户端,包括Mac和Windows(不包括WSL2)计算机)
--preserve-fd = FD1[,FD2,...]¶
将逗号分隔列表中指定的其他文件描述符向下传递给进程。它可以指定多次。仅crun OCI运行时支持此选项。将此选项与其他OCI运行时一起使用可能存在安全风险。
(此选项不适用于远程Podman客户端,包括Mac和Windows(不包括WSL2)计算机)
--preserve-fds = N¶
向下传递给进程N的附加文件描述符(除了0、1、2之外)。FD总数为3+N(此选项不适用于远程Podman客户端,包括Mac和Windows(不包括WSL2)计算机)
--privileged¶
将扩展权限授予此容器。默认为 错误 。
默认情况下,Podman容器没有特权( =false ),并且例如不能修改操作系统的某些部分。这是因为默认情况下,容器仅被允许对设备进行有限访问。除虚拟控制台外,授权的容器对设备的访问权限与启动该容器的用户相同 (/dev/tty\d+) 在system d模式下运行时( --systemd=always )。
特权容器关闭将容器与主机隔离的安全功能。删除的功能、有限的设备、只读装载点、Apparmor/SELinux分离和Seccomp筛选器都被禁用。由于禁用的安全功能,几乎不应该设置特权区域,因为容器很容易突破限制。
在用户命名空间中运行的容器(例如,无根容器)不能具有比启动它们的用户更多的特权。
--tty , -t¶
分配一个伪TTY。默认为 错误 。
当设置为时 true ,Podman分配一个伪tty并附加到容器的标准输入。例如,这可以用来运行一次性交互Shell。
NOTE :--tty标志防止重定向标准输出。它结合了STDOUT和STDERR,可以插入控制字符,还可以悬挂管道。仅当在终端中以交互方式运行时才使用此选项。向Podman提供输入时,请使用-I Only,Not-It。
--user , -u = user[:group]¶
设置所使用的用户名或UID,还可以设置指定命令的组名或GID。两者都有 user 和 group 可以是符号的也可以是数字的。
如果没有此参数,该命令将以容器映像中指定的用户身份运行。除非被 USER
命令,或者通过传递给该选项的值,则该用户通常默认为根用户。
当未使用用户命名空间时,容器内和主机上使用的UID和GID匹配。但是,当使用用户命名空间时,容器中的UID和GID可能对应于主机上的另一个UID和GID。例如,在无根容器中,总是使用用户名称空间,默认情况下,容器中的根对应于调用Podman的用户的UID和GID。
--workdir , -w = dir¶
容器内的工作目录。
在容器中运行二进制文件的默认工作目录是根目录( / )。图像开发人员可以使用WORKDIR指令设置不同的缺省值。操作员可以通过使用 -w 选项。
退出状态¶
的退出代码 podman exec
提供有关容器中的命令无法运行或退出的原因的信息。什么时候 podman exec
以非零代码退出,则退出代码跟在 chroot
标准,见下文:
125 错误出在Podman本身
$ podman exec --foo ctrID /bin/sh; echo $?
Error: unknown flag: --foo
125
126 包含的_ command_ 无法调用
$ podman exec ctrID /etc; echo $?
Error: container_linux.go:346: starting container process caused "exec: \"/etc\": permission denied": OCI runtime error
126
127 包含的_ command_ 找不到
$ 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
退出代码 包含的_ command_ 退出代码
$ podman exec ctrID /bin/sh -c 'exit 3'; echo $?
3
EXAMPLES¶
在选定容器中执行命令,分配标准输入和TTY:
$ podman exec -it ctrID ls
在所选容器中使用被覆盖的工作目录执行命令,并分配标准输入和tty:
$ podman exec -it -w /tmp myCtr pwd
在所选容器中以指定用户身份执行命令:
$ podman exec --user root ctrID ls
另请参阅¶
[podman(1)] , [podman-run(1)]
HISTORY¶
2017年12月,最初由Brent Baudebbaude@redhat.com汇编