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

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


当前回答

更新

我通常使用docker attach来查看STDOUT显示的内容,以便对容器进行故障排除。我刚刚发现码头日志-遵循621a4334f97b,这让我看到STDOUT,同时也能够ctrl+c关闭它,而不影响容器操作!这正是我一直想要的。

... 当然,你需要替换你自己的容器ID。

原来的答案

我想让容器运行,但是没有使用-it启动容器。我的解决方案是牺牲我的SSH连接(因为我被SSHed到运行容器的机器上)。关闭ssh会话使容器完好无损,但使我脱离了它。

其他回答

对于任何遇到与我相同问题的人(不能在不杀死容器的情况下分离,即使在设置分离键时)......

当使用docker-compose up -d启动容器时

而不是使用docker附加{容器名}来查看尾矿日志....

Ctrl+C在不杀死容器的情况下杀死日志尾部

{服务名}是在docker-compose中列出的服务。yml文件. .(例如,当容器名称=elk_logstash_1 ->服务名称=logstash

要在不退出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重新连接吗

要停止一个docker进程并释放端口,首先使用ctrl-c退出容器,然后使用docker ps找到正在运行的容器列表。然后,您可以使用docker容器stop来停止该进程并释放其端口。容器名可以从docker ps命令中找到,该命令在name列中给出了名称。希望这解决了您的疑问....

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

docker attach --sig-proxy=false 304f5db405ec

然后使用Ctrl+C分离

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