首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么执行"docker exec“会杀死我的SSH会话?

执行"docker exec"命令会杀死SSH会话的原因是因为该命令会在容器内部启动一个新的进程,并且默认会将标准输入、输出和错误输出重定向到该进程。当SSH会话与容器内的进程断开连接时,SSH会话会被终止。

为了避免SSH会话被终止,可以使用以下方法:

  1. 使用"-it"参数:在执行"docker exec"命令时,添加"-it"参数可以分配一个伪终端并保持输入流的开放状态,这样可以保持SSH会话的活跃性。例如:
  2. 使用"-it"参数:在执行"docker exec"命令时,添加"-it"参数可以分配一个伪终端并保持输入流的开放状态,这样可以保持SSH会话的活跃性。例如:
  3. 使用"nohup"命令:在执行"docker exec"命令时,可以使用"nohup"命令将要执行的命令放在后台运行,这样即使SSH会话断开,命令也会继续执行。例如:
  4. 使用"nohup"命令:在执行"docker exec"命令时,可以使用"nohup"命令将要执行的命令放在后台运行,这样即使SSH会话断开,命令也会继续执行。例如:
  5. 使用"screen"命令:在执行"docker exec"命令时,可以使用"screen"命令创建一个虚拟终端,将要执行的命令放在该终端中运行,即使SSH会话断开,命令也会继续执行。例如:
  6. 使用"screen"命令:在执行"docker exec"命令时,可以使用"screen"命令创建一个虚拟终端,将要执行的命令放在该终端中运行,即使SSH会话断开,命令也会继续执行。例如:

以上方法可以确保在执行"docker exec"命令时不会导致SSH会话被终止,从而保持SSH会话的持久性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 Docker 客户端管理容器:这些命令必须知道

传统上,在管理物理服务器或虚拟机时,我们只需要连接 RDP(运行 Windows 时) 或 SSH(运行 Linux 时) 来访问控制台,然后从那里执行任务。然而,容器被设计成是准备好可以用于生产。...因为想让这个会话在后台运行,所以使用键盘按键 Ctrl + p ,然后 Ctrl + q ,这样重复四次,如下图所示。...当前容器列表是空为什么? Docker 客户端命令 docker container list 只列出活动容器。...在容器上执行命令 有时候在管理容器时,在容器上运行命令更容易,从而节省在其他地方进行故障排除时间。我们可以使用 docker container exec 命令在任何给定容器上触发特定命令。...以下命令可用于 Linux 容器: docker container exec -it /bin/sh 如果我们在执行 Docker 命令时使用 PowerShell,

99010

Docker 容器中编辑文件

希望每次在docker容器中安装vi时候谁会给我1美元...想要一个在运行docker容器编辑文件更简单方式。首先,尝试避免编辑文件,这违背了容器哲学理念(见最后一段)。...但是如果你有一个正当理由,下面教你怎么做。 为什么是Zedapp? 很多时候使用vi或Atom,就在几个月前偶然发现了Zedapp,一个自用编辑器。...ssh "sudo zed $@" ; } Boot2docker中安装zed帮助脚本需要这一句,所以你需要boot2docker ssh工作区。...Dockercp命令只支持反方向:从容器到本地目录。 这是一个开源问题,很快修复,但是同时你可以使用nesenter救急。...(顺便说一下):docker exec已经合并在主分支里了,它将全面替代nsenter。

5.4K50
  • Ansible和Docker作用和用法

    当然,你也会收获一些实践知识,那就是如何通过部署 Ansible 和 Docker 来为 Rails 应用搭建一个完整服务器环境。 也许有人问:你怎么不去用 Heroku?...更厉害是,它提供一套内建、可扩展模块库文件,通过它你可以控制所有的一切:包管理器、云服务供应商、数据库等等等等。 为什么要使用 Docker?...Ansible 通过 SSH 为远端主机发送命令。保存在本地 ssh 代理上面的 SSH 密钥会通过 Ansible 提供 SSH 会话分享到远端主机。...:2.8 Ansible 查看这个文件,并且通知 Docker 加载正确镜像,然后在容器中启动。...安装了所有 Ruby gems,创建一个名为“/test-terrabox”命令,这个命令会被名为“test-only”容器执行

    2.1K20

    面试官:能在容器里面通过 kill -9 杀死容器吗?问倒一大片。。。

    pid是进程PID号。 强制终止进程可能导致进程意外终止,因此需要谨慎使用,kill -9还可以用于终止僵尸进程。 上面了解了关于 Kill 命令具体使用方法以及注意事项。...我们都知道,容器里面第一个进程PID为 1,那么当我们进入容器后,能否通过。 # kill -9 1 方式杀死自己吗 ? 答案是不能。为什么呢?看下面。...这个其实很容易理解,SIGKILL目的是强制杀死进程,如果进程自己捕获处理后,并没有执行exit退出,那么就永远无法杀死了。...细心你可能已经发现了,是无法在容器内PID Namespace里面杀死。那么,容器外呢?...可以通过 docker ps 命令来获取当前正在运行容器列表及其 ID。执行上述命令后,Docker 向容器发送一个 SIGTERM 信号,请求它优雅地停止。

    53410

    什么?终止一个容器竟然用了 10 秒钟,这不能忍!

    容器停止时间很长 - 运行命令 docker stop mycontainer 之后,Docker 等待 10s,如果 10s 后容器还没有终止,Docker 就会绕过容器应用直接向内核发送 SIGKILL...,内核强行杀死应用,从而终止容器。... → docker run -it --name corny --rm truek8s/popcorn 打开另外一个终端执行停止容器命令,并计时:  → time docker stop corny...有了这个 IDEA兄弟,你还用 Navicat 吗?全家桶不香吗? 为什么阿里巴巴禁止使用存储过程?...云原生是一种信仰  扫码关注公众号 后台回复◉k8s◉获取 史上最方便快捷 Kubernetes 高可用部署工具 只需一条命令,连 ssh 都不需要!

    93810

    如何通过SSH进入正在运行容器【Containers】

    既然您知道不需要SSH与您容器进行交互,下面是可用工具概述(以及一些使用SSH注意事项,尽管有许多花哨工具使其变得多余)。...: $ oc logs --follow=true example-1-e1337 --all-containers 执行命令 您可以使用以下命令远程执行命令: $ oc exec example-1-...Remote shell 您可以附加到正在运行容器。 这仍然不会在容器中打开外壳,但是直接运行命令。...或者,您可以启动Bash Shell进行交互式会话: $ docker exec -it example-centos /bin/bash 容器和应用 与云打交道时要记住重要一点是,容器本质上是运行时...但是,就像设备一样,容器具有帮助您开发,维护和监视它们界面,因此请熟悉前端命令和服务,直到您与它们愉快地交互时就像与虚拟(或裸机)交互一样轻松 。 很快,您会好奇为什么一切都不会仅仅停留在短期发展。

    3.4K00

    Jmeter(三十二)_搭建本地接口自动化环境

    开启两个会话 第一个会话执行 小幺鸡 服务操作; 第二个会话执行 mysql 配置文件操作; mysql数据库: docker images 查看mysql镜像id docker run -d -p 4406...:3306 registry.cn-hangzhou.aliyuncs.com/zhufc/mysql:v1 docker ps -a 查看生成容器 docker exec -it {mysql id.../zhufc/xiaoyaoji:web docker ps -a 查看生成容器 docker exec -it {小幺鸡id} bash 进入容器 cd /usr/local/tomcat/apache-tomcat...进入mysql容器,执行刷新:FLUSH PRIVILEGES; 本地浏览器启动小幺鸡服务:虚拟机host/api 你还在为找不到可练习接口而烦恼吗?...博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=630d8qy00yro

    65351

    Linux运维工程师面试题(7)

    Runc功能是在Linux和Windows中把容器作为一个单独进程运行,并且可以通过命令行或RPC接口来控制它。它可以管理容器生命周期,比如创建、启动、停止、杀死等。...build:从 Dockerfile 构建镜像commit:从容器更改创建新镜像cp:在容器和本地文件系统之间复制文件/文件夹create:创建一个新容器events:从服务器获取实时事件exec:在正在运行容器中运行命令...docker attach 容器名,attach类似于vnc,操作会在同一个容器多个会话界面同步显示,所有使用此方式进入容器操作都是同步显示,且使用exit退出后容器自动关闭,不推荐使用,需要进入到有...使用exec命令。在运行中容器启动新进程,可以执行单次命令,以及进入容器测试环境使用此方式,使用exit退出,但容器还在运行,推荐使用。使用run命令。run命令可以创建并进入容器。...使用ssh进行容器。需要在镜像(或容器)中安装ssh server,并且给用户设置密码,不推荐使用。使用nsenter命令。

    36930

    jenkins远程部署项目

    image.png 本文介绍 使用 jenkins部署机来部署项目到 远程服务器 为什么要把jenkins装在单独一台服务器, 一是为了降低部署和生产环境耦合性, 二是为了节约成本, 可以再本地服务器搭建部署机...安装jenkins 使用docker安装方式, 安装步骤:https://jenkins.io/zh/doc/book/installing/#docker 2....docker ps docker ps 进入镜像命令行 docker exec -it 你镜像ID /bin/bash bash 可以看到, 进入了镜像bash 生成SSH密钥 这里说明一下为什么配置...加上-tt参数, 为了可以在远程机器上执行命令, 需要 << remotessh, 这里注意, 最后两句, 用来退出远程机器, 不然的话, 导致任务无法终治....第四句, 这里需要使用git完整路径, 之前写cron时候也遇到过, 执行bash, 需要使用/bin/bash, 这里执行git命令, 也需要完整路径/bin/git, 昨晚就用git, 然后也没加最后两句终治

    1.3K20

    Jumpserver docker搭建

    需要手动输入提供秘钥,在上图红框中秘钥。  输入6位校验码之后,就会提示绑定成功 ?  重新登录,输入用户和密码,提示MFA认证 ?  登录成功之后,效果如下: ?...进入docker容器,创建用户assets,生成秘钥 # docker exec -it jumpserver /bin/bash # useradd assets # su assets $ ssh-keygen...注意:上面有一个sudo,表示不允许执行命令列表。注意绝对路径要填写正确,否则不会生效。 禁止开发人员,切换用户。...注意:ip地址是jumpserver地址,不是svr-1地址 端口是2222,不是22 ?  选择秘钥验证,用户名zhang,选择私钥文件 ? 点击连接,提示mfa认证。 ?  ...如果有多台,会有一个列表选择! 测试切换到root用户 ? 提示输入密码,注意:没有给develop设置密码。 那么测试一下,给develop用户设置一个密码。

    1.9K11

    【操作】使用 Cobalt Strike 对 Linux 主机进行后渗透

    长话短说,有两种方法可以在 Cobalt Strike 中让 Linux 主机上线: 0x01 方法一:SSH 会话 1、原理篇 【SSH 会话】是针对 UNIX 目标进行后渗透 Cobalt Strike...那么你可能问了,那如果有了 SSH 凭据,为什么不自己登上去看,还非要上个 CS 干什么,毕竟 CS 又不是稳控。 个人认为这主要是为了在后渗透网络拓扑中把目标网络主机们串起来,便于横向。...因为 SSH 会话生成 Beacon 还具有连接到 TCP Beacon 功能。这样可以形成一个 Win → Linux → Win 拓扑链。...那么为什么使用 【SSH 会话】 作为在目标机器上 agent? 功能上: 可以上传、下载、执行命令和作为跳板 支持加密通讯 在多种操作系统和架构环境中生效 目标上自带。...exec("/xxx/xxx/genCrossC2"... -> exec("/opt/cs/genCrossC2"... 2)使用 菜单栏: CrossC2 -> CrossC2 Payload Generator

    3.3K10

    如何绕过 Docker ,大规模杀死容器

    Docker 提供了两种停止容器方法:docker stop和docker kill。Docker stop 向容器发送一个SIGTERM信号,并给容器一个宽限期,让它优雅地关机。...以下是执行docker kill后 30 秒左右看到一些日志记录: ...2020-12-04T04:31:32.308Z dockerd Releasing addresses for...举例来说,我们不想让容器获得更多文件系统快照。 采用解决方案是通过直接杀死容器 pid 来绕过 docker。...另外,会话启动时间第 99 个百分比从约 2 分钟降至约 15 秒。 总结一下,我们发现,虚拟机关机缓慢导致 REPL 卡住和糟糕用户体验。...经过研究,我们发现 Docker 花了超过 30 秒时间在虚拟机上杀死所有容器。我们通过绕过 Docker 和自己杀死容器来解决这个问题。这样就减少了 REPL 卡住次数,加速了会话启动时间。

    72730

    掌握SpringBoot-2.3容器探针:实战篇

    ,如果该地址返回码不在200到400之间,kubernetes认为该容器不健康,杀死该容器重建新容器,这个地址就是存活探针; kubernetes要求业务容器提供一个名为readinessProbe...体验十分顺畅,IDEA、SubLime、SSH、Chrome、微信都能正常使用,下图是Ubuntu开发环境: 实战内容简介 本次实战包括以下内容: 开发SpringBoot应用,部署在kubernetes...目前已经将此镜像push到hub.docker.com,您在kubernetes直接使用即可,就像nginx、tomcat这些官方镜像一样下载; 在开发环境执行docker save bolingcavalry.../probedemo.tar root@192.168.50.135:/root/temp/202006/04/ # 远程执行ssh命令,加载docker镜像 sshpass -p 888888...: 对以上内容理解:选择外部系统服务作为探针时候要谨慎(外部系统可能是数据库,也可能是其他web服务),如果外部系统出现问题,导致kubernetes杀死pod(存活探针问题),或者导致

    68520

    systemd --user进程CPU占用高问题分析

    -s /bin/bash test3 $ passwd test3 然后,在第二个终端,执行ssh登录test3 $ ssh test3@172.21.0.46 接着,在第一个终端,执行如下命令过滤新产生...2.3.systemd进程为何没有被销毁 既然ssh登录产生systemd进程,那退出ssh登录应该会销毁对应systemd进程。 于是,我们在2.2中第二个窗口执行 exit退出ssh连接。...但,为什么我们看到腾讯云环境上systemd进程一直没有被销毁?  ...此时想到了 非正常退出ssh连接, 如2.1章节,在第二个终端,执行ssh登录test3,再如下图直接点“X”直接关闭窗口, 然后,在第一个终端,执行如下命令过滤新产生test3 用户systemd...同时,既然说到和docker版本有关系,便针对性找了两个有差异环境做docker版本对不: 1.ubuntu1604+mount挂载多+systemd正常环境 2.ubuntu1604+mount

    3K51

    Docker从门外到入门使用

    4.Docker容器 使用镜像创建容器container。觉得是镜像实例化。...容器创建使用docker create命令,创建却不运行它。 虽然容器启动了,可是没有进到容器中,不能进行交互式会话。 使用如下命令,附着到正在运行容器,进行会话。...在容器中运行进程 后台命令示例使用代码: docker exec -d my_container touch /etc/new_file 则在该容器中(-d表示后台执行),创建一个新文件 交互式命令示例使用代码...: docker exec -t -i my_container /bin/bash 该代码可以进去与之前创建守护式容器进行交互(当然之前使用了 docker exec -d my_container...#表示注释 其中run命令在有时候需要写成如下格式(exec格式RUN指令): RUN ["apt-get", "install","-y","nginx"] 进行保存后,在该路径下执行命令: docker

    94540

    docker stop 或者 docker kill 不能停止容器

    ,会被 调用 docker kill 方式杀死(我们程序目前就是这种) 2,容器停止时间很长: ​ 运行命令 docker stop 之后,docker 默认等待 10S(默认值,可以修改...,docker 等 10S(默认时间),然后调用 kill 去杀死容器进程,其实这样造成下面两个问题 1,进程不能正常终止 Linux 内核中其实会对 PID 1 进程发送特殊信号量。...一般情况下,当给一个进程发送信号时,内核先检查是否有用户定义处理函数,如果没有,就会回退到默认行为。例如使用 SIGTERM 直接杀死进程。...remember to start it with exec: 你可以为ENTRYPOINT指定一个普通字符串,它将在/bin/sh -c中执行。...为了确保docker stop正确地提示任何长期运行ENTRYPOINT可执行文件,你需要记得用exec启动它。

    4.3K20

    docker容器中前台程序和后台程序,为什么一定要前台运行

    但后台运行,其实是有前提,如果没有前台进程,那么实际运行完docker run命令后,处于退出状态,即exited。...容器运行命令如果不是那些一直挂起命令(比如运行ping,sleep),就是自动退出。而上面的代码中bash就是需要执行指定命令。命令如果执行完毕了,或者叫指定应用终结时,容器自动停止。...补充-进入容器4种方法docker提供了多种进入容器方法,这里补充4种常见方法:使用docker attach使用SSH使用nsenter使用execdocker attachdocker attach...ssh在镜像(或容器)中安装SSH Server,这样就能保证多人进入,不建议使用,具体见为什么不需要在 Docker 容器中运行 sshdnsenternsenter使用方法docker exec-推荐使用通常我们可以通过容器...查看容器ID,之后再通过docker exec -it containerID bash进入容器

    3.8K30

    掌握SpringBoot-2.3容器探针:实战篇

    掌握SpringBoot-2.3容器探针:实战篇》; 辅助部分是一些参考资料和备忘总结,如下: 《SpringBoot-2.3镜像方案为什么要做多个layer》; 《设置非root账号不用sudo直接执行...认为该容器不健康,杀死该容器重建新容器,这个地址就是存活探针; kubernetes要求业务容器提供一个名为readinessProbe地址,kubernetes定时访问该地址,如果该地址返回码不在...目前已经将此镜像push到hub.docker.com,您在kubernetes直接使用即可,就像nginx、tomcat这些官方镜像一样下载; 在开发环境执行docker save bolingcavalry.../probedemo.tar root@192.168.50.135:/root/temp/202006/04/ # 远程执行ssh命令,加载docker镜像 sshpass -p 888888...服务),如果外部系统出现问题,导致kubernetes杀死pod(存活探针问题),或者导致kubernetes不再调度请求到pod(就绪探针问题);(再请感谢大家容忍英语水平) 关于容器和镜像环境

    93650
    领券