我可以附加到一个docker进程,但Ctrl+C不能从它分离。退出基本上停止了进程。

让流程运行,偶尔附加到流程上进行一些更改,然后再分离的推荐工作流是什么?


当前回答

如果您只是想对文件进行一些修改或检查进程,这里有另一个您可能需要的解决方案。

您可以运行以下命令从现有容器中执行一个新进程:

sudo docker exec -ti [CONTAINER-ID] bash

用bash shell启动一个新进程,你可以直接用Ctrl+C退出,这不会影响原来的进程。

其他回答

要在不退出shell的情况下分离tty,请使用转义序列Ctrl+P后跟Ctrl+Q。详情请点击这里。

来自此来源的其他信息:

docker run -t -i→可以用^P^ q分离,用docker attach重新连接 docker run -i→不能与^P^Q分离;将中断stdin docker run→不能与^P^Q分离;可以SIGKILL客户端;可以用docker attach重新连接吗

还可以查看——sig-proxy选项:

docker attach --sig-proxy=false 304f5db405ec

然后使用Ctrl+C分离

打开一个新终端 找到正在运行的容器Id docker ps 删除容器的docker

我用的是Mac电脑,出于某种原因,Ctrl-p Ctrl-q只有在按住Shift的时候才会起作用

在同一个shell中,按住Ctrl键,然后按P键和Q键