docker container stop
描述 | 停止一个或多个正在运行的容器 |
---|---|
用法 | docker container stop [选项] 容器 [容器...] |
别名 | docker stop |
描述
容器内的主进程将接收 SIGTERM
信号,经过一段宽限期后,再接收 SIGKILL
信号。第一个信号可以通过容器 Dockerfile 中的 STOPSIGNAL
指令更改,或者通过 docker run
和 docker create
命令的 --stop-signal
选项进行配置。
选项
选项 | 默认值 | 描述 |
---|---|---|
-s, --signal | 发送给容器的信号 | |
-t, --timeout | 在杀死容器之前等待的秒数 |
示例
$ docker stop my_container
使用信号停止容器 (-s, --signal)
--signal
标志向容器发送系统调用信号以使其退出。此信号可以是 SIG<NAME>
格式的信号名称,例如 SIGKILL
,也可以是与内核 syscall 表中位置匹配的无符号数,例如 9
。有关可用信号的信息,请参阅 signal(7)。
要使用的默认信号由镜像的 StopSignal
定义,这可以在构建镜像时通过 STOPSIGNAL
Dockerfile 指令设置,或者在创建容器时使用 --stop-signal
选项配置。如果容器未配置任何信号,则默认使用 SIGTERM
。
使用超时停止容器 (-t, --timeout)
--timeout
标志设置了在发送预定义(参见 [--signal
]{#signal})系统调用信号后,等待容器停止的秒数。如果在超时时间过后容器仍未退出,则会强制使用 SIGKILL
信号杀死它。
如果将 --timeout
设置为 -1
,则不会应用超时,守护程序将无限期等待容器退出。
默认超时时间可以在创建容器时使用 --stop-timeout
选项指定。如果容器未配置默认值,则由守护程序确定默认值,Linux 容器为 10 秒,Windows 容器为 30 秒。