为何在终端运行Docker容器后无法用Ctrl+C退出?
解决Docker前台运行容器无法用Ctrl+C退出的问题
你遇到的情况是因为容器内的nodemon进程没有正确响应Ctrl+C发送的SIGINT信号,导致无法直接终止容器。这里给你几个直接退出的方法:
方法一:强制终止当前进程
在卡住的终端里按下Ctrl+\(Ctrl加反斜杠),这个组合键会发送SIGQUIT信号,通常能强制终止前台运行的容器进程,回到终端提示符。方法二:另开终端停止容器
打开一个新的终端窗口,先执行docker ps找到你正在运行的这个server容器的ID或名称,然后执行docker stop <容器ID/名称>来停止容器;如果stop没效果,用docker kill <容器ID/名称>强制杀死容器进程。方法三:提前配置让Ctrl+C生效
下次运行容器时,加上--init参数,让Docker在容器内启动一个init进程,负责把外部的信号(比如Ctrl+C的SIGINT)转发给容器内的主进程(这里就是nodemon),命令变成:docker run -p 3000:3000 --init server这样再按Ctrl+C就能正常退出容器了。
内容的提问来源于stack exchange,提问作者Abhishek Raj
相关产品推荐
相关产品推荐

