跳到主要内容

podman -wait - 等待一个或多个容器停止并打印它们的退出码

摘要

podman wait [选项] 容器 [...]

podman container wait [选项] 容器 [...]

描述

等待一个或多个容器停止。容器可以通过其名称或ID来引用。对于多个容器,Podman 会依次等待每个容器。当所有条件都满足后,容器会按照给定的顺序打印它们的返回码。除了“stopped”和“exited”状态外,其他所有条件的退出码都是-1。

注意:对于具有“always”或“on-failure”重启策略的容器(例如通过podman kube play创建的容器),存在固有的竞态条件。这类容器可能会反复退出和重新启动,并可能具有不同的退出码,但podman wait只能显示和检测一个。

选项

--condition=状态

等待的容器状态或条件。可以多次指定,但至少一个条件必须匹配才能使命令返回。支持的值包括“configured”、“created”、“exited”、“healthy”、“initialized”、“paused”、“removing”、“running”、“stopped”、“stopping”、“unhealthy”。默认条件是“stopped”。

--help, -h

打印使用说明。

--ignore

如果指定的容器不存在,则忽略错误,并将其返回码标记为-1。

--interval, -i=持续时间

在轮询完成之前等待的时间间隔。持续时间字符串是一系列十进制数,每个数可以有可选的小数部分和单位后缀,例如“300ms”、“-1.5h”或“2h45m”。有效的时间单位包括“ns”、“us”(或“µs”)、“ms”、“s”、“m”、“h”。时间单位的默认值为“ms”。

--latest

如果指定了此选项,并且只提供了一个容器名或ID,Podman 将等待最新创建的容器,而不是指定名称或ID的容器。如果未指定任何容器,Podman 将等待最新创建的容器。

这个选项在你不确定容器的确切名称或ID,但想要等待最新创建的容器时非常有用。例如,如果你连续创建了多个容器,并且只关心最后一个容器的状态,你可以使用--latest选项来简化命令。

请注意,如果容器名称或ID不明确或不存在,--latest选项可能会导致不可预测的结果。因此,在使用此选项时,请确保你了解它的行为,并始终确保你等待的容器是正确的。

podman wait命令是一个强大的工具,用于等待容器停止并获取它们的退出码。通过结合使用不同的选项,你可以灵活地控制等待条件和时间间隔,以满足你的具体需求。

示例

等待指定的容器退出。

$ podman wait mywebserver
0

等待最新创建的容器退出。(此选项不适用于远程Podman客户端,包括Mac和Windows(除WSL2外)机器)

$ podman wait --latest
0

每两秒检查一次,等待容器退出。

$ podman wait --interval 2s mywebserver
0

通过容器ID等待容器退出。此容器以错误状态1退出:

$ podman wait 860a4b23
1

等待两个指定的容器都退出。

$ podman wait mywebserver myftpserver
0
125

等待指定名称的容器退出,但如果容器不存在则不失败。

$ podman wait --ignore does-not-exist
-1

另请参阅

podman(1)

历史

2017年9月,最初由Brent Baude整理编写。