docker run -d和docker run -it的区别详解
作者:RedCong 发布时间:2021-07-29 14:05:39
标签:docker,run,-d
docker run -it
i : interactive 代表交互
-t : tty 分配伪 TTY
测试不带前台进程的,例如centos/ubuntu
> docker run -it ubuntu
root@a30a87e0e065:/# exit
exit
> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
我们发现容器已经退出了
> docker run -it ubuntu
root@a30a87e0e065:/# 输入Ctrl + P + Q
> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e51e423ac575 ubuntu "bash" 10 seconds ago Up 10 seconds romantic_franklin
发现容器不会退出
测试带前台进程的,例如redis
> docker run -it redis
1:C 26 Nov 2022 15:15:37.357 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 26 Nov 2022 15:15:37.357 # Redis version=6.2.6, bits=64, commit=00000000, modified=0, pid=1, just started
a config file use redis-server /path/to/redis.conf
1:M 26 Nov 2022 15:15:37.358 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 6.2.6 (00000000/0) 64 bit
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 1
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
1:M 26 Nov 2022 15:15:37.358 # Server initialized
1:M 26 Nov 2022 15:15:37.358 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
1:M 26 Nov 2022 15:15:37.358 * Ready to accept connections
# 输入Ctrl + P + Q
> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
14cef5be594b redis "docker-entrypoint.s…" 15 seconds ago Up 14 seconds 6379/tcp silly_wright
> docker run -it redis
1:C 26 Nov 2022 15:22:49.890 # Redis version=6.2.6, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 26 Nov 2022 15:22:49.890 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
1:M 26 Nov 2022 15:22:49.891 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 6.2.6 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 1
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
1:M 26 Nov 2022 15:22:49.891 # Server initialized
1:M 26 Nov 2022 15:22:49.891 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
1:M 26 Nov 2022 15:22:49.891 * Ready to accept connections
exit #这里没有反应,我们继续Ctrl + C
^C1:signal-handler (1669476186) Received SIGINT scheduling shutdown...
1:M 26 Nov 2022 15:23:06.123 # User requested shutdown...
1:M 26 Nov 2022 15:23:06.123 * Saving the final RDB snapshot before exiting.
1:M 26 Nov 2022 15:23:06.130 * DB saved on disk
1:M 26 Nov 2022 15:23:06.130 # Redis is now ready to exit, bye bye...
> docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8668b2bf13b1 redis "docker-entrypoint.s…" 24 seconds ago Exited (0) 7 seconds ago ecstatic_lehmann
总结:
-it 使用交互方式运行,进入容器查看内容
1.当运行的镜像没有前台进程。
exit #run进去容器,exit退出,容器停止
Ctrl+P+Q # run进去容器,ctrl+p+q退出,容器不停止
1.当运行的镜像有前台进程。
exit #用exit无效,使用Ctrl + C ,容器会停止
Ctrl+P+Q # run进去容器,ctrl+p+q退出,容器不停止
docker run -d
-d : detach 表示后台运行
测试不带前台进程的,例如centos/ubuntu
> docker run -d ubuntu
> docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0210648ee10f ubuntu "bash" 34 seconds ago Exited (0) 32 seconds ago jolly_wright
我们发现容器启动后会立马退出
测试带前台进程的,例如redis
> docker run -d redis
> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3adf2698b224 redis "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 6379/tcp vigilant_agnesi
我们发现容器不会退出
总结:
Docker容器后台运行,就必须有一个前台进程.
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
docker run -d ubuntu tail -f /dev/null # 这种情况就不会退出了
来源:https://blog.csdn.net/qq_32789063/article/details/128058919


猜你喜欢
- 内容摘要:本文列出了SQL 注入一些常用语句,站长朋友请注意了,看看您的网站程序是否存在这样的漏洞,一般过滤post或get过滤的
- 平常我都是使用任务时间表(Task Scheduler)来管理“工作站”与“文件
- 由天极网、解放日报网、ITBEAR、中国站长、WEB开发网、Donews等国内知名网络媒体联合评测推荐以及根据国内知名域名虚拟主机服务商华夏
- 通过 Google 广告管理系统,我们还可以实现时间和日期上的精准投放。通过和AdSense广告补余相结合,我们可以在指定的日期或
- linux systemd什么是 systemdLinux 系统在启动过程中,内核完成初始化以后,由内核第一个启动的程序便是 init 程序
- 原因:你的网站是utf-8编码,但iis的错误信息输出默认使用的是gb2312编码。导致iis出现运行时错误的时候显示的页面是乱码。解决办法
- 默认情况下windows2003是没有安装的,我们必须手工添加。POP3服务组件在“添加/删除windows组件—电子邮件服务”下,它共包括
- 由于Apache具有相当高的可移植性,它支持超过30种操作系统,包括Unix、Windows 及Darwin等系统,所以目前在网络上已注册的
- 在本系列文章第二十八篇:Windows2003服务器安装及设置教程——IIS优化篇二(使用eAccelerator加速PHP)和本系统文章第
- 终于决定把邮件系统重新弄一弄了。因为服务器经常出问题,DNS报错,SMTP也经常出问题。最重要的是,因为以前只有两台服务器,这台服务器上充当
- 当互联网吵吵嚷嚷的进入2.0时代,当互联网的技术不再是那么高不可攀,当复制变成家常便饭,互联网热闹起来了myspace火了,中国冒出更多的m
- 北京时间3月3日消息,据国外媒体报道,微软首席执行官史蒂夫·鲍尔默星期二在一个搜索引擎会议上表示,微软认为,Google为了获得互联网搜索广
- 11月25消息,百度推出一款功能强大的智能手机输入法v1.0 Beta,其基于百度搜索技术的强大词库,内置百度搜索框,将上网搜索步骤减少至最
- 为WordPress做模板的时候我们经常可能遇到这样的问题,每个页面用的模板不一样,比如,这个页面有侧边,那个页面没侧边,这个页面用这个导航
- “工欲善其事,必先利其器”,要想在一分钟内搞定docker+redis哨兵模式(一主二从三哨兵),按
- 十二,三年前,连接多半是为了用来介绍其它连接给访问者,目的很单纯,所以网站主对连接到什么网站,连接该网站给访问者带来什么好处非常看重。连接一
- 1、配置virtual box全局网络对所有虚拟机有效。1.1. 宿主机网络配置这是为了宿主机和虚拟机之间能互通。为了配置固定IP,可以禁用
- 电子邮件(electronic mail,简称E-mail)是—种用电子手段提供信息交换的通信方式。是Internet应用最广的服务:通过网
- 查看文件属性有多种方法,且这些方法中偏向不同,具体如下:1,ls ls -a 查看所有文件 &
- 本文为大家分享了VMware 12 下 Ubuntu 16.04镜像 安装教程,供大家参考,具体内容如下1)安装前准备PC电脑操作系统是WI