首页 > 解决方案 > Docker 从附加容器中退出

问题描述

我现在正在学习 docker 基础知识并坚持这一点:我创建了一个 docker 容器:

 docker container run -d -t --name t_d_container linux
fd91f24a79e007d3676b2ab2344b34765829b918672abf4c7995836ad68d0f35



docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
fd91f24a79e0        oraclelinux         "/bin/bash"         6 seconds ago       Up 5 seconds                                   t_d_container

docker container attach t_d_container
[root@fd91f24a79e0 /]# exit

但是当我从容器中退出时,它会继续运行并等待我提供输入。所以我每次都必须做CTRL + C。

然后,我尝试了

docker container exec -it t_d_container /bin/bash

正如预期的那样,现在有 2 个进程正在为 bash 运行:

[root@fd91f24a79e0 /]# ps -ef

UID        PID  PPID  C STIME TTY          TIME CMD

root         1     0  0 06:49 pts/0    00:00:00 /bin/bash

root        27     0  0 07:08 pts/1    00:00:00 /bin/bash

有没有其他方法可以从后台运行的容器中退出?

我进一步挖掘。附加到容器后,我无法在附加的容器上执行任何命令。

 docker container attach ac9d50c03304
 [root@ds001 /]# hostname

它只是坐在那里等我按 CTRL+C。Docker版本:19.03.9

标签: dockercontainers

解决方案


如果您已经以交互模式 (-it) 启动容器,请依次尝试以下步骤:

  1. Ctrl+p
  2. Ctrl+q

如果您以守护程序模式 (-d) 启动容器并附加到它,您可以退出它,它仍将在后台运行。


推荐阅读