如何从docker容器中分离出来

时间:2013-11-22 13:09:26

标签: docker

此问题与this非常相似,但我仍遇到问题:

我用:

运行一个容器
docker run -d CONTAINER

然后我用

附上它
docker attach NAME

但是我无法退出,不能使用CTRL-C,也不能使用CTRL-P + CTRL-Q(如上面类似问题中的建议)

我必须kill -9 PID退出...

我做错了什么?

的信息:

Docker版本0.6.7,构建cb48ecc
Ubuntu 3.8.0-33-通用#48~precision1-Ubuntu

3 个答案:

答案 0 :(得分:81)

作为Jérôme Petazzoni mentioned in docker-user group

Actually, you can SIGKILL the client, and reattach later.
However, this will disrupt stdin (the container will see EOF on stdin, and if it cares about stdin, e.g. if it's a shell, it will exit).

To recap:
docker run -t -i → can be detached with ^P^Q and reattached with docker attach
docker run -i → cannot be detached with ^P^Q; will disrupt stdin
docker run → cannot be detached with ^P^Q; can SIGKILL client; can reattach with docker attach

答案 1 :(得分:74)

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

docker attach --sig-proxy=false NAME

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

答案 2 :(得分:1)

附上:

docker attach <container name>

允许我在Docker版本17.04中用 Ctrl + d 分离

我知道这已经过时了,但由于上面所示的方法都不适合我,我以为我会分享。