[英]Stop a docker container from within an alpine image
我正试图在高山图像中停止一个码头集装箱:
> docker run -ti alpine sh
/ # poweroff
/ # poweroff -f
poweroff: Operation not permitted
/ # halt
/ # halt -f
halt: Operation not permitted
/ # whoami
root
你知道这有什么问题吗?
你无法以这种方式停止码头图像。
首先,如果poweroff
不得不功能(和它过去那样, 由于问题 ),它会因为如何关闭整个电脑, poweroff
二进制工作和电源停止机械设计上的Linux和硬件。
为了正确关闭容器,你需要做的就是退出入口点(在shell中exit
),或者向这个进程发送一个信号(例如: docker stop
将SIGTERM
发送到正在运行的入口点,然后在一段时间后终止它) 。
如果你真的想从一个容器中关闭主机(为什么你想要这样做?),你可以激活--privileged
选项,它将为容器中的root提供所有电源,然后执行:
echo 1 > /proc/sys/kernel/sysrq; echo o > /proc/sysrq-trigger
小心,这将真正关闭主机,并以残酷的方式。 在sysrq
编写1
将激活sysrq
内核功能,该功能允许使用SysRq密钥向内核发出键盘请求,但也可以通过sysrq-trigger
文件。 o
表示断电。
你需要终止进程sh
,只需使用:
exit
从容器内部。 将容器视为一个独立的进程,而不是虚拟机。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.