跳到主要内容

解释如何退出一个镜像的 bash,而不终止它?

参考答案:

当你进入了一个 Docker 容器的 bash shell,你实际上是在容器内部运行一个 bash 进程。这个 bash 进程是容器的一个子进程,并且当你从这个 bash shell 退出时,通常默认情况下会发送一个终止信号给 bash,进而终止整个容器(除非容器是以某种方式配置的,比如使用 docker run -itd 来在后台运行)。

但如果你想退出 bash shell 而不终止容器,你可以使用以下方法:

  1. 使用 Ctrl+P 然后 Ctrl+Q

这是 Docker 的一种特殊快捷键组合。当你在容器的交互式终端中(比如使用 docker exec -it <container_id> bash 进入的)时,可以使用这个组合来“分离”终端但保持容器运行。

* 首先按 `Ctrl+P`
* 然后按 `Ctrl+Q`这会将你带回宿主机的终端,但容器会继续运行。
  1. 在后台运行 bash

另一种方法是使用 nohup 或其他工具在后台运行 bash。但这种方法比较复杂,并且通常不建议这样做,因为它可能会导致一些意外的行为或配置问题。 3. 重新附加到容器

如果你已经使用了上述的 Ctrl+PCtrl+Q 方法从容器分离,你可以使用 docker attach <container_id> 重新附加到容器。但请注意,如果你从 bash 中退出了(例如,输入了 exit),容器仍然会终止。

总的来说,最简单和最常用的方法是使用 Ctrl+P 然后 Ctrl+Q 来退出 bash 但保持容器运行。