Linux:lxc强制停止并杀死容器

时间:2020-01-09 10:40:15  来源:igfitidea点击:

如何停止在容器内运行的应用程序。
我执行了lxc-stop -n myapp,但是命令没有返回到shell提示符,我的lxc容器进入了挂起状态。

如何杀死在Ubuntu Linux主机上运行的容器?
您需要使用lxc-stop命令重新引导,完全关闭或杀死Linux容器(LXC)内的所有进程。
默认情况下,它将通过向容器初始化进程发送lxc.haltsignal(默认为SIGPWR)来请求容器的干净关闭,等待60秒以退出容器,然后返回。
如果容器在60秒内无法完全退出,则将向其发送lxc.stopsignal(默认为SIGKILL)以强制其关闭。

重新启动容器

语法为:

lxc-stop -n containerNameHere -r

要重新启动名为myhttpd的容器,请执行:

lxc-stop -n myhttpd -r

关闭并杀死容器(强制终止)

语法为:

lxc-stop -n containerNameHere -k

或者

lxc-stop -n containerNameHere --kill

要强制终止并关闭名为myhttpd的容器,请执行:

lxc-stop -n myhttpd -k

要在硬停止容器之前等待TIMEOUT(例如180秒),请执行:

lxc-stop -n myhttpd -k -t 180

或者

lxc-stop -n myhttpd -k --timeout 180

干净关机(推荐)

以下语法仅请求干净关闭,如果干净关闭失败,则不终止容器

lxc-stop -n containerNameHere --nokill
lxc-stop -n myhttpd --nokill

关于超时的说明

为了避免等待60秒,只需执行请求操作(重新引导,关闭或硬终止)并退出,请传递-W选项:

## hard kill ##
lxc-stop -W -n containerNameHere -k
## reboot ##
lxc-stop -W -n containerNameHere -r

如何查看容器状态?

要仅列出正在运行的容器,请执行:

lxc-ls --fancy --running

输出示例:要仅列出已停止的容器,请执行:

lxc-ls --fancy --stopped

要列出系统上已停止和正在运行的容器,请执行:

lxc-ls --fancy

输出示例:

NAME         STATE    IPV4       IPV6  AUTOSTART  
-----------------------------------------------
debian8      STOPPED  -          -     NO         
wwwapp1      RUNNING  10.0.3.14  -     YES        
dnsapp1      RUNNING  10.0.3.16  -     YES        
staticf1     RUNNING  10.0.3.17  -     YES        
mysqlapp     RUNNING  10.0.3.19  -     YES