如何从docker集装箱分离

这个问题是非常相似的,但我仍然有问题:

我运行一个容器:

docker run -d CONTAINER 

然后我附上它

 docker attach NAME 

但是我不能用CTRL-C和CTRL-P + CTRL-Q来退出它(就像上面类似的问题中提到的那样)

我必须kill -9 PID才能退出…

我究竟做错了什么?

信息:

Docker版本0.6.7,build cb48ecc
Ubuntu 3.8.0-33-generic#48〜precise1-Ubuntu

您应该使用--sig-proxy=false选项attach到容器,如下所示:

 docker attach --sig-proxy=false NAME 

然后,您可以使用CTRL + C退出而不停止容器本身。

正如杰罗姆·皮塔佐尼(JérômePetazzoni)在docker用户组织中提到的那样 :

其实,你可以SIGKILL客户端,然后重新连接。
然而,这将破坏标准input(容器将在标准input上看到EOF,如果它关心标准input,例如,如果它是一个shell,它将退出)。

回顾一下:
docker运行-t -i→可以与^ P ^ Q分离并重新附加docker附加
docker运行-i→不能用^ P ^ Q分离; 会破坏stdin
docker运行→不能与^ P ^ Q分离; 可以SIGKILL客户端; 可以重新附加docker附加

附:

 docker attach <container name> 

允许我使用Docker 17.04版中的Ctrl + d进行分离

我知道这是旧的,但由于上面所示的方法都没有为我工作,我想我会分享。