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

为什么docker run退出我的终端会话?

Docker是一种开源的容器化平台,它可以将应用程序及其依赖项打包成一个独立的容器,以便在不同的环境中进行部署和运行。当你使用docker run命令来启动一个容器时,如果没有指定-d参数(即后台运行),默认情况下容器会在前台运行,并且会绑定到当前的终端会话。

当你退出终端会话时,会话中的所有进程都会被终止,包括前台运行的容器。这就是为什么当你退出终端会话时,docker run启动的容器也会退出的原因。

如果你希望容器在后台持续运行,可以使用docker run -d命令来启动容器。这样容器将会在后台运行,并且不会受到终端会话的影响。你可以使用docker ps命令来查看正在运行的容器列表。

对于容器的退出问题,还有一种可能是容器内部的应用程序发生了错误或异常导致容器自动退出。你可以使用docker logs命令来查看容器的日志输出,以便排查问题。

总结起来,当你使用docker run启动容器时,默认情况下容器会在前台运行,并且会绑定到当前的终端会话。退出终端会话会导致容器也退出。如果希望容器在后台持续运行,可以使用docker run -d命令来启动容器。

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

相关·内容

Docker学习系列】Docker学习3-dockerrun命令干了什么?docker为什么比虚拟机快?

通过前面学习,我们已经在centos系统中安装了docker,也成功拉取了dockerhello-word镜像及运行成功了。...那么有没有思考过如下问题: 思考问题1: docker run 到底干了些什么?...当我们执行docker run 镜像名称之后,docker会执行以下流程: 1:docker会先从本机中寻找该镜像,查看本机是否存在。...整个流程如下图: 图片 思考2:docker为什么会比VM虚拟机快呢? 我们来看看一个形象docker和VM虚拟机对比图。如下图: 图片 那么docker为什么会比VM虚拟机快呢?...主要有以下两点: 1:docker有着比虚拟机更少抽象层 由于Docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上程序直接使用都是实际物理机硬件资源; 我们知道虚拟机是需要虚拟出

46720

为什么Run 出来 Apk 发给老板,却装不上!

Run Apk 2.1 textOnly 属性 我们知道,AS Run 起来 Apk,会使用 Debug 签名进行签名,不过安装不上,并不是签名问题。...这就是为什么你无法安装 Run 出来 Debug.apk。 2.2 为什么要这么设计? 这个问题,对于大多数开发者来说,基本上不是问题。...如果你觉得那里值得改进,请给我留言。一定会认真查询,修正不足。谢谢。 希望读到这您能转发分享和关注一下,以后还会更新技术干货,谢谢您支持!...毕业3年,是如何从年薪10W拖拽工程师成为30W资深Android开发者! 腾讯T3大牛带你了解 2019 Android开发趋势及必备技术点!...八年Android开发,从码农到架构师分享技术成长之路,共勉! 最后祝大家生活愉快~

2.6K30

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

只要用户还有会话存在,这个进程就不会退出;用户所有会话退出时,进程将会被销毁。”。...但,为什么我们看到腾讯云环境上systemd进程一直没有被销毁?  ...此时想到了 非正常退出ssh连接, 如2.1章节,在第二个终端,执行ssh登录test3,再如下图直接点“X”直接关闭窗口, 然后,在第一个终端,执行如下命令过滤新产生test3 用户systemd...关于这个问题,在《google-cloud-kuberbetes-run-away-systemd-100-cpu-usage》一文中得到答案: image.png Docker在17.03和18.09...同时,既然说到和docker版本有关系,便针对性找了两个有差异环境做docker版本对不: 1.ubuntu1604+mount挂载多+systemd正常环境 2.ubuntu1604+mount

2.8K51

Docker入门

运行容器 现在,我们尝试启动第一个容器,我们可以使用docker run方法创建容器,docker run 提供了容器创建到启动过程。docker run 执行流程如下图所示: ?...容器名称必须是唯一,而且有效名称能够帮助我们理清楚上下级关系,所以明明很重要!!! 重新启动已经停止容器 例如,使用docker ps命令没有发现容器正在启动 ?...附着容器 Docker 容器重新启动时候,会沿用docker run 命令时指定参数来运行,因此我们容器重新启动后会运行一个交互式会话shell。...如果退出 shell 进程,容器也会随之停止运行 创建守护式容器 除了这些交互式运行容器,我们也可以创建长期运行容器。守护式容器没有交互式会话,非常适合运行应用程序和服务。...tty(终端设备统称):在UNIX系统中,计算机显示器通常被称为控制台终端(Console)。

90520

Docker入门

运行容器 现在,我们尝试启动第一个容器,我们可以使用docker run方法创建容器,docker run 提供了容器创建到启动过程。docker run 执行流程如下图所示: ?...容器名称必须是唯一,而且有效名称能够帮助我们理清楚上下级关系,所以明明很重要!!! 重新启动已经停止容器 例如,使用docker ps命令没有发现容器正在启动 ?...附着容器 Docker 容器重新启动时候,会沿用docker run 命令时指定参数来运行,因此我们容器重新启动后会运行一个交互式会话shell。...如果退出 shell 进程,容器也会随之停止运行 创建守护式容器 除了这些交互式运行容器,我们也可以创建长期运行容器。守护式容器没有交互式会话,非常适合运行应用程序和服务。...tty(终端设备统称):在UNIX系统中,计算机显示器通常被称为控制台终端(Console)。

85230

Docker入门

运行容器 现在,我们尝试启动第一个容器,我们可以使用docker run方法创建容器,docker run 提供了容器创建到启动过程。docker run 执行流程如下图所示: ?...容器名称必须是唯一,而且有效名称能够帮助我们理清楚上下级关系,所以明明很重要!!! 重新启动已经停止容器 例如,使用docker ps命令没有发现容器正在启动 ?...附着容器 Docker 容器重新启动时候,会沿用docker run 命令时指定参数来运行,因此我们容器重新启动后会运行一个交互式会话shell。...如果退出 shell 进程,容器也会随之停止运行 创建守护式容器 除了这些交互式运行容器,我们也可以创建长期运行容器。守护式容器没有交互式会话,非常适合运行应用程序和服务。...tty(终端设备统称):在UNIX系统中,计算机显示器通常被称为控制台终端(Console)。

80830

Docker入门

运行容器 现在,我们尝试启动第一个容器,我们可以使用docker run方法创建容器,docker run 提供了容器创建到启动过程。docker run 执行流程如下图所示: ?...容器名称必须是唯一,而且有效名称能够帮助我们理清楚上下级关系,所以明明很重要!!! 重新启动已经停止容器 例如,使用docker ps命令没有发现容器正在启动 ?...附着容器 Docker 容器重新启动时候,会沿用docker run 命令时指定参数来运行,因此我们容器重新启动后会运行一个交互式会话shell。...如果退出 shell 进程,容器也会随之停止运行 创建守护式容器 除了这些交互式运行容器,我们也可以创建长期运行容器。守护式容器没有交互式会话,非常适合运行应用程序和服务。...tty(终端设备统称):在UNIX系统中,计算机显示器通常被称为控制台终端(Console)。

67320

Docker运行命令示例

在前台中运行容器 默认情况下,当docker run命令未提供任何选项时,根进程将在前台启动。这意味着来自根进程标准输入,输出和错误将附加到终端会话。...docker container run nginx Nginx进程输出将显示在你终端上。由于没有与Web服务器连接,因此终端为空。...要停止容器,请按CTRL+C终止正在运行Nginx进程。 以分离(后台)模式运行容器 要在退出终端会话时保持容器运行,请以分离模式启动容器。这类似于在后台运行 Linux进程。...--rm选项告诉docker run命令在容器自动退出时将其删除: docker container run --rm nginx 在容器退出后,Nginx映像可能不是清理容器文件系统最佳示例。...-it选项告诉Docker将标准输入保留在终端上并分配一个伪tty: docker container run -it nginx /bin/bash 容器Bash外壳将连接到终端,命令提示符将更改

1.2K10

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

让我们举一个简单例子:我们希望立即执行 docker run alpine 以及容器退出,所以我们使用 -it ,这迫使它进行交互并使用当前终端。...因为想让这个会话在后台运行,所以使用键盘按键 Ctrl + p ,然后 Ctrl + q ,这样重复四次,如下图所示。...当前容器列表是空为什么? Docker 客户端命令 docker container list 只列出活动容器。...要获得所有容器列表,只需在同一个 Docker 客户端命令末尾添加开关 --all (如下图所示)。 ? 现在如果想回到一个特定容器,去检查一些东西或抓取一个文件,该怎么做?...第一件事是启动容器,然后返回会话。美妙之处在于,用于创建命令也可以用于启动容器(这是有意义),因此不需要传递额外参数。使用以下 Docker 客户端命令,我们就能够启动任何已停止容器。

95910

screen后台执行命令

2、简介 GNU Screen是一款由GNU计划开发用于命令行终端切换自由软件。用户可以通过该软件同时连接多个本地或远程命令行会话,并在其间自由切换。...1.会话恢复 2.多窗口 3.会话共享 GNU's Screen 官方站点:http://www.gnu.org/software/screen/ 3、语法 参数说明 -A 将所有的视窗都调整为目前终端大小...但是这样启动screen会话没有名字,实践上推荐为每个screen会话取一个名字,方便分辨: [root@docker-01 ~]# screen -S david screen启动后,会创建第一个窗口...重新连接会话: [root@docker-01 ~]# screen -r 19005 5.4退出会话: 如果你备份命令执行完了,不想再使用screen会话了,可以使用exit命令退出会话。...[root@docker-01 ~]# exit [root@docker-01 ~]# screen -ls No Sockets found in/var/run/screen/S-root.

2.6K10

Docker从门外到入门使用

4.Docker容器 使用镜像创建容器container。觉得是镜像实例化。...可以用docker info 查看镜像源是否更改。 ? 查看docker信息 在终端输入docker info,可以查看到当前容器数量,镜像数量,还有更改镜像源等 ? ?...容器创建使用docker create命令,创建却不运行它。 虽然容器启动了,可是没有进到容器中,不能进行交互式会话。 使用如下命令,附着到正在运行容器,进行会话。...docker attach 6d47 这样就又回到交互式环境中了: ? 创建和使用守护式容器 守护式容器没有交互式会话,长期运行在后台,提供服务即可。使用命令还是run命令。...: docker exec -t -i my_container /bin/bash 该代码可以进去与之前创建守护式容器进行交互(当然之前使用了 docker exec -d my_container

91040

嗯,以后写教程就用它了!

Asciinema官网 介绍 来自官网的话:以正确方式记录并分享您终端会话,忘记屏幕录音应用程序和模糊视频吧。享受一种轻量级、纯粹基于文本终端录制方法。...Asciinema 是 Linux 系统下一款"高级"终端会话记录和回放神器, 它是一个在终端下非常棒录制分享软件,基于文本录屏工具,对终端输入输出进行捕捉, 然后以文本形式来记录和回放!...作为包管理工具,下载过程如下 sudo yum install asciinema Docker安装 同时也支持使用 Docker 安装 docker run --rm -ti -v "$HOME...# 退出 eixt # 播放录制终端命令 asciinema play demo.cast 上传到Asciinema官网 但是只是在终端上查看,还是不能分享给其它小伙伴们,所以我们需要将我们录制内容上传...,点击开始录制后,你在终端所有操作都会被记录下来 # 开始录制 asciinema rec # 退出录制【按下回车上传】 exit 录制成功地址 下面访问这个地址,即可看到我们内容了 https

36030

【云原生 | Docker篇】轻松学会生存技巧 -- 命令(二)

对象底层信息 kill 杀死一个或者多个容器 load 从tar文件加载镜像 login 登录Docker registry logout 退出Docker registry logs 获取容器日志;...把busybox镜像保存成tar文件 docker load -i busybox.tar 把压缩包里面的内容直接导成镜像 ---------- 镜像为什么能长久运行 镜像启动一定得有一个阻塞进程,...docker.io/lansonli/mynginx:v4 镜像全称 登录远程docker仓库 当前会话登录以后 docker login 。...容器端口 -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用 --name="nginx-lb":为容器指定一个名称; --dns 8.8.8.8: 指定容器使用DNS服务器,默认和宿主一致...OPTIONS说明: -d :分离模式: 在后台运行 -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端 docker exec -it alpine sh 3、docker

617131

将 Web 应用丢给守护进程

对于 Spring Boot,我们可以在终端使用 mvn spring-boot:run 在前台跑 Web 服务;对于 React 前端应用,我们可以使用 npm script 即 npm start...问题来了,这样操作,服务进程是跑在前台(所谓前台任务/进程),当我们退出操作终端或者手动终止时,这些服务也就不能用了,而且前台任务独占了一个终端,使得我们不能再在此终端执行其他命令。...在了解如何解决问题前,觉得有必要了解下为什么前台任务会随着 session 退出退出(收到了 SIGHUP)。...什么是 session 会话(session)是一个若干进程组集合,同样,系统中每一个进程组也都必须从属于某一个会话;一个会话只拥有最多一个控制终端(也可以没有),该终端会话中所有进程组中进程所共用...一个会话中前台进程组只会有一个,只有其中进程才可以和控制终端进行交互;除了前台进程组外进程组,都是后台进程组;和进程组先导类似,会话中也有会话先导(session leader)概念,用来表示建立起到控制终端连接进程

1.5K70

Docker循序渐进

推荐参考菜鸟教程(RUNOOB.COM)-Docker命令大全 启动容器 $ docker run IMAGE [COMMAND] [AGR…] run 在新容器中执行命令 IMAGE 启动容器所使用操作系统镜像...-t 分配伪tty终端 --tty = true | false 默认是false 示例: $ docker run -i -t ubuntu /bin/bash [itrun] docker创建了一个允许使用...: 能长期运行 没有交互式会话 适合运行应用程序和服务 以守护形式运行容器 推出交互模式,后台运行: 使用快捷键 Ctrl+P + Ctrl+Q [退出交互] 退出交互后,容器仍在运行,使用docker...+C退出(Linux下绝大部分操作通用嘛) 查看进程内容 查看运行中容器进程: $ docker top 容器名 [top] 在运行容器中启动新进程 Docker理念是,在一个容器中使用一个服务...bin/bash 以前面创建dc_test容器为例,为其添加一个bash终端进程,并使用top指令查看 [exec] 停止守护式容器 stop $ docker stop 容器名 发送停止信号给容器,

91190

Docker 循序渐进

推荐参考菜鸟教程(RUNOOB.COM)-Docker命令大全 启动容器 1 $ docker run IMAGE [COMMAND] [AGR…] run 在新容器中执行命令 IMAGE 启动容器所使用操作系统镜像...分配伪tty终端 –tty = true | false 默认是false 示例: 1 $ docker run -i -t ubuntu /bin/bash ?...退出交互后,容器仍在运行,使用docker ps查看 直到执行exit,容器被释放 附加到运行中容器 1 $ docker attach 容器名 执行指令后重新进入容器交互界面,图略 创建守护式容器...注意:Ctrl+C退出(Linux下绝大部分操作通用嘛) 查看进程内容 查看运行中容器进程: 1 $ docker top 容器名 ?.../bin/bash 以前面创建dc_test容器为例,为其添加一个bash终端进程,并使用top指令查看 ?

1K80

《 第一本Docker书 》读书笔记 --- Docker 各项操作命令及参数说明(docker run 命令各个参数说明)

2. docker run 如果本地没有对应镜像,会从Docker 官方仓库 Docker Hub 下载该镜像。 docker run 命令会覆盖 CMD (见第19条)指令。...docker run 参数说明: (此项是从书中多个地方整理而成,实际书中对此命令各个参数讲解分布在多个章节中) -i :开启标准输入。...-t :创建伪 tty 终端。 -it :合起来实现和容器交互作用,运行一个交互式会话 shell 。(参见第 5 点) -d : 后台运行。...--volumes-from:把指定容器中所有卷加入新创建容器中,如 docker run --volumes-from 已存在容器 ......重启:docker restart 。 5. 运行一个交互式会话 shell :docker attach ,退出 shell 容器停止运行 。 ( 要保留容器运行可用 exec 命令,见第7点。)

47220

docker容器技术系列二:docker容器初体验

: 设置开机启动:运行sysv-rc-conf,如果没有该工具,则自行安装即可 启动: service docker.io start *注:不建议初学者采用编译安装docker,因为这样耗时耗力,还有很多不可预知问题出现...@110baabc10bc /]# echo "Docker,hello world"Docker,hello world *注:-t标示在心容器内指定一个伪终端终端,-i标示允许我们对容器内STDIN...00:00:00 ps -ef 2.3 以服务方式启动一个docker容器 如果你实际测试,估计也发现了,第一个“hello world”容器启动后执行完echo命令就退出了,而第二个交互式容器,只要用户退出当前容器...这明显不能满足一个服务长时间运行要求,好找docker run提供了‘-d’参数,可以实现将容器以守护进程方式启动。...word进程:一个脚本会一直输出”Docker,hello world” 为什么不是我们看到一大堆”hello word”?

95480

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

docker 容器默认会把容器内部第一个进程,也就是pid=1程序作为docker容器是否正在运行依据,如果docker容器中 pid = 1 进程挂了,那么docker容器便会直接退出,也就是说...docker容器之后台运行 我们 docker run 启动容器时候,常需要将其在后台运行,通常我们设置参数 -d 即可。...但后台运行,其实是有前提,如果没有前台进程,那么实际运行完docker run命令后,会处于退出状态,即exited。...例子:docker run -d --name my-redis redis bash# 指定命令是bash,但显然bash在容器起来后,很快就会结束,导致没有前台进程,故容器处于退出状态Docker容器后台运行...-td命令结合使用docker run -itd --name my-redis2 redis bash# -i 不是必需,加了,容器起来后终端返回容器ID刚也提到,就是-d运行容器时,需要有前台进程,

3.5K30

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券