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

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


当前回答

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

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

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

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

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

其他回答

要从容器中分离,只需按住Ctrl并按P + Q。

附加到你使用的正在运行的容器:

$ docker container attach "container_name"

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

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

如果你只需要docker进程在后台运行,你可以使用

Ctrl + Z

注意,这不是一个真正的分离,它会带来性能损失。 (您可以使用bg命令将其返回到前台)。

另一种选择是关闭你的终端,如果你不再需要它。

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

docker attach --sig-proxy=false 304f5db405ec

然后使用Ctrl+C分离