【问题标题】:How to disown a docker container running inside SSH session如何取消在 SSH 会话中运行的 docker 容器
【发布时间】:2018-12-27 11:46:38
【问题描述】:

我已经通过 SSH(从我的主机)访问了一台远程机器(称为 RM)。我正在通过我的 SSH 会话在 RM 中运行一个 docker 映像。两者都基于 Ubuntu 16.04。

这个docker容器里面有一些进程在运行,所以我不能退出容器。

那么,我如何从我的主机上分离这个 ssh 会话,以便 docker 内的那些进程仍然运行不受影响。

我这样做是因为出于某种目的我必须重新启动我的主机。

PS: 在此链接Correct way to detach from a container without stopping it 中,它没有通过 SSH 会话运行 docker 容器。所以两种情况是不同的。

【问题讨论】:

  • 如果你在分离模式下运行你的容器(带有 -d 标志),那么退出你的 SSH 会话不会影响它。
  • 是的.. 但我已经启动了没有 -d 标志的容器,并且正在其中运行 bash。所以,现在有什么办法否认它

标签: docker ubuntu ssh


【解决方案1】:

首先,您必须使用 -d 参数并删除 -it 以守护程序(非交互式)模式启动 Docker 容器。不要忘记使用--name foo 选项为您的容器命名以供进一步使用。

容器启动后,您可以使用docker exec -it foo sh-or-whatever对其进行控制。如果您的ssh 会话将终止,容器将继续运行。但是,您的docker exec 会话将结束。

【讨论】:

  • 如果 docker 已经在没有 -d 模式的情况下启动了怎么办。我现在如何使它成为一个守护进程。
  • 重启一下
  • 不可能,因为我正在其中运行一个进程,它不应该被杀死并且需要很多天才能完成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-31
  • 2016-03-04
  • 2017-06-22
  • 1970-01-01
  • 2021-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多