停止容器

描述

isula stop命令用于停止一个或多个运行中的容器。首先向容器中的首进程会发送SIGTERM信号,在指定时间(默认为10s)内容器未停止时,会发送SIGKILL

用法

  1. isula stop [OPTIONS] CONTAINER [CONTAINER...]

参数

stop命令支持参数参考下表。

表 1 stop命令参数列表

命令

参数

说明

stop

-f, —force

强制停止正在运行的容器

-H, —host

指定要连接的iSulad socket文件路径

-t, —time

先优雅停止,超过这个时间,则强行终止

约束限制

  • 指定t参数且t<0时,请确保自己容器的应用会处理stop信号。

    Stop的原理:Stop会首先给容器发送Stop 信号(SIGTERM),然后等待一定的时间(这个时间就是用户输入的 t),过了指定时间如果容器还仍处于运行状态,那么就发送kill信号(SIGKILL)强杀。

  • 输入参数t的含义:

    t<0 : 表示一直等待,不管多久都等待程序优雅退出,既然用户这么输入了,表示对自己的应用比较放心,认为自己的程序有 合理的stop信号的处理机制。

    t=0 : 表示不等,立即发送kill -9 到容器。

    t>0 : 表示等一定的时间,如果容器还未退出,就发送kill -9 到容器。

    所以如果用户使用t<0 (比如t=-1),请确保自己容器的应用会正确处理SIGTERM. 如果容器忽略了该信号,会导致isula stop一直卡住。

示例

停止一个容器

  1. $ isula stop fd7376591a9c3d8ee9a14f5d2c2e5255b02cc44cddaabca82170efd4497510e1
  2. fd7376591a9c3d8ee9a14f5d2c2e5255b02cc44cddaabca82170efd4497510e1