小编典典

从容器中分离而不停止容器的正确方法

docker

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

因此,例如,如果我尝试:

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

两者都将我带到集装箱中的码头,如何在不停止的情况下退出集装箱的码头?

exit并且CTR+C都停止了容器。


阅读 319

收藏
2020-06-17

共1个答案

小编典典

更新: 如以下答案中所述,Ctrl+ pCtrl+ q现在可以将交互方式转换为守护程序方式。


那么Ctrl+ C(或Ctrl+ \)应分开你从容器中,但 它会杀死容器 ,因为你的主要过程是一个bash。

关于Docker的一些课程。该容器不是真正的功能齐全的操作系统。运行容器时,启动的过程将使用PID
1并假定具有初始化电源。因此,当该进程终止时,守护进程将停止容器,直到启动一个新进程(通过docker
start)(对此问题的更多说明http://phusion.github.io/baseimage-
docker/#intro)

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

docker run -d foo

在容器上装有ssh服务器。(最简单的方法是遵循dockerizing
openssh教程https://docs.docker.com/engine/examples/running_ssh_service/

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

docker start foo

(默认情况下它将被分离)

2020-06-17