Docker从连接的容器中退出

Docker从连接的容器中退出,docker,containers,Docker,Containers,我现在正在学习docker的基础知识,并坚持这一点: 我创建了一个docker容器: docker container run -d -t --name t_d_container linux fd91f24a79e007d3676b2ab2344b34765829b918672abf4c7995836ad68d0f35 docker container ls -a CONTAINER ID IMAGE COMMAND C

我现在正在学习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。DockerVersion:19.03.9

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

  • Ctrl+p
  • Ctrl+q

  • 如果您已在deamon模式(-d)下启动容器并将其连接到它,则可以退出它,它仍将在后台运行

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

  • Ctrl+p
  • Ctrl+q

  • 如果您已在deamon模式(-d)下启动容器并将其连接到它,则可以退出它,它仍将在后台运行

    那么
    docker-stop
    呢?docker-container-stop成功地停止了容器。但我不想在出口处停下集装箱。我想让它在后台运行。这能回答你的问题吗?没有。。。我想让容器一直运行。停止按名字说的做。你真的点击了链接并阅读了吗?我阅读了你的评论,理解了你在寻找什么,并提供了与我第一次评论不同的解决方案。docker stop呢?docker container stop成功地停止了容器。但我不想在出口处停下集装箱。我想让它在后台运行。这能回答你的问题吗?没有。。。我想让容器一直运行。停止按名字说的做。你真的点击了链接并阅读了吗?我阅读了你的评论,理解了你在寻找什么,并提供了与我第一次评论不同的解决方案。如果我使用Citrix连接到远程服务器,这将不起作用。此外,当您尝试在连接的容器上运行任何命令时,它们根本不起作用。我必须按CTRL+C退出容器。实际上,您可以通过其ID/Name:docker exec-it echo“Hello container!”在正在运行的容器中运行任何命令。但如果您的容器处于停止状态,则需要首先启动它。假设您要在容器上构建db服务器。您必须保持24小时的运行。此外,应该启用容器的shell登录以执行sql命令。因此,我在这里尝试构建一个容器,该容器将始终与托管在其上的oracle DB一起运行,其他团队成员应该拥有shell访问权限来管理DB,而不是每次都运行docker container exec。
    docker exec-it bash
    (或任何可用的shell…)允许您对已运行db的容器进行shell访问。如果我使用Citrix连接到远程服务器,则此操作无效。此外,当您尝试在连接的容器上运行任何命令时,它们根本不起作用。我必须按CTRL+C退出容器。实际上,您可以通过其ID/Name:docker exec-it echo“Hello container!”在正在运行的容器中运行任何命令。但如果您的容器处于停止状态,则需要首先启动它。假设您要在容器上构建db服务器。您必须保持24小时的运行。此外,应该启用容器的shell登录以执行sql命令。因此,我在这里尝试构建一个容器,该容器将始终与托管在其上的oracle DB一起运行,其他团队成员应该拥有shell访问权限来管理DB,而不是每次都运行docker container exec。
    docker exec-it bash
    (或任何可用的shell…)允许您对已经运行db的容器进行shell访问。