正确的方法,不停止从容器中分离出来

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

在Docker 1.1.2(最新版本)中,不停止容器从容器中分离的正确方法是什么?

例如,如果我尝试:

  • docker run -i -t foo /bin/bash
  • docker attach foo(用于已经运行的容器)

这两种方法都能让我到达集装箱中的一个码头,我如何在不停车的情况下退出集装箱码头呢?

exitCTR+C都要把集装箱停下来。

提问于
用户回答回答于

Ctrl+C(或Ctrl+))应该将从容器中分离出来,但是它会杀死容器,因为主要进程是bash。

关于码头的一点教训。容器不是一个真正的全功能操作系统。当运行容器时,启动进程,取PID 1,并假定init功能。因此,当该进程终止时,守护进程将停止容器,直到启动一个新进程(通过dockerstart)(关于此问题的更多解释)

如果想要始终以分离模式运行的容器,我建议使用

docker run -d foo

使用容器上的ssh服务器。(最简单的方法是遵循dockerizingopenssh教程。

或者可以通过以下方式重新启动容器

docker start foo
用户回答回答于

键入Ctrl+p,Ctrl+q将帮助将交互模式转换为守护进程模式。

# To detach the tty without exiting the shell,
# use the escape sequence Ctrl-p + Ctrl-q
# note: This will continue to exist in a stopped state once exited (see "docker ps -a")

扫码关注云+社区