docker wait教程

docker wait 命令可以用于阻塞一个或多个 Docker容器 直到容器停止,然后打印退出代码。
docker wait命令后面的 CONTAINER 可以是容器Id,或者是容器名。

docker wait语法

haicoder(www.haicoder.net)# docker wait [OPTIONS] CONTAINER [CONTAINER…]

案例

等待容器退出

使用 docker run -it -d 命令,启动一个 dokcer容器。
haicoder(www.haicoder.net)# docker run —name haicoder -it -d centos
15327bf7fac71599bb0fd885099f097ca91ff0a781c26fd98f5599554c2d8888

使用 docker wait containerName 命令,等待正在运行的 docker容器,直到其退出。
haicoder(www.haicoder.net)# docker wait haicoder

运行后,终端被阻塞,终端显示信息如下图所示:
Docker wait命令 - 图1
我们使用 docker stop 命令停止正在运行的 docker 容器,
haicoder(www.haicoder.net)# docker stop haicoder

此时终端显示如下:
Docker wait命令 - 图2
在 docker stop 命令执行的同时,刚才被 dokcer wait 命令阻塞的终端,输出了 docker容器的退出码,显示如下图所示:
Docker wait命令 - 图3
使用 docker killdocker rm 命令,删除所有容器。
haicoder(www.haicoder.net)# docker kill docker ps -qa ; docker rm docker ps -aq

等待未运行容器

使用 docker create -it 命令,创建一个 docker容器,并不运行该容器。
haicoder(www.haicoder.net)# docker create -it —name haicoder centos
3a48dfd88bfeeba4d690d53488eaba8aaf9475e2b35ed59d7a24a8dce145afa3

使用 docker ps 命令,查看当前正在运行的 docker容器,终端显示如下:
Docker wait命令 - 图4
即,此时没有任何正在运行的 docker 容器。
使用 docker wait命令,等待并未运行的 docker容器,此时直接输出 0,终端并未阻塞。
haicoder(www.haicoder.net)# docker wait haicoder
#输出
0

使用 docker kill 和 docker rm 命令,删除所有容器。
haicoder(www.haicoder.net)# docker kill docker ps -qa ; docker rm docker ps -aq

docker wait命令总结

docker wait 命令可以用于阻塞一个或多个 Docker容器直到容器停止,然后打印退出代码。
docker wait命令等待一个正在运行的容器时,docker wait命令会一直阻塞,该容器退出时, docker wait命令会输出对应的退出码。
docker wait 命令等待一个未运行的容器时,docker wait 命令不会阻塞,而是直接输出 0。