docker wait 命令阻塞终端直至指定容器停止并返回其退出码;支持单容器等待、后台容器监听、多容器(20.10+)并发等待(仅返最后退出码),常用于脚本中捕获状态码做条件判断。

docker wait 命令用于阻塞当前终端,直到指定容器停止运行,然后立即返回该容器的退出状态码(exit code)。
基本用法:等待单个容器退出
语法很简单:
docker wait
例如,启动一个短暂运行的容器并等待它结束:
docker run -d --name test-alpine alpine:latest sleep 2
docker wait test-alpine
命令会卡住约 2 秒,容器退出后输出 0(表示正常退出)。如果容器内命令失败(如 exit 1),则返回对应非零状态码。
配合 run 使用时注意前台/后台模式
docker run 默认前台运行时会自动阻塞并返回状态,无需额外 wait;只有在 -d(后台模式) 启动后,才需要用 wait 显式监听:
- docker run alpine:latest sh -c "exit 42" → 终端立即返回 42
-
docker run -d alpine:latest sh -c "exit 42" → 返回 container ID,需再执行 docker wait
才能得到 42
一次等待多个容器(Docker 20.10+)
新版 Docker 支持同时等待多个容器,用空格分隔:
docker wait container-a container-b container-c
注意:命令会等待最后一个容器退出后才返回,且只输出最后一个容器的退出码(不是全部)。如需分别获取各容器状态,应单独调用或结合脚本处理。
实际脚本中常用组合方式
在 Shell 脚本里常配合变量捕获退出码:
EXIT_CODE=$(docker wait myapp)
echo "Container exited with code: $EXIT_CODE"
也可用于条件判断:
if [ $(docker wait myjob) -eq 0 ]; then echo "Success"; else echo "Failed"; fi











