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
0
投稿
猜你喜欢
- 北京时间11月13日消息,据国外媒体报道,微软在英国取消了其搜索引擎Bing的beta测试版标签,同时还发布了Bing地图英国版,用户在访问
- 更改个人账户密码普通用户想要更改自己的个人帐户密码,只需要运行passwd命令,不用带任何其他的命令:$ passwd示例输出:Changi
- 先看效果图:1.新建一个文件:850*800,底层填充#272727,再新一个图层1,利用矩形选区画一个矩形框,填充#121212.2.在图
- PR众所周知是我们做网站比较在意的东西。搜索蜘蛛也比较喜欢去PR值高的网站转悠。所以现在也有很多PR不高的网站去PR值高的网站去留一个自己网
- 国内知名的网站内容管理系统帝国CMS6.6测试版开源发布。在6.6版本中系统等各方面都进行了完善,新增更多实用功能,优化了更多细节。6.6版
- Linux wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程
- 在05年入行数月之后,逢劳动节放假,经历了连续一个多月每天到12点的加班之后。我在自己的日记本写了一篇关于摹仿和抄袭的文章。写了足足5大张。
- 前言Cut 输入字符中指定的字段或指定的范围。若处理的是字段,则定界符隔开的即为各字段,而输出时字段也以给定的定界符隔开。默认的定界符为制表
- HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP 协议的详细内
- 站长们总是每天倾力建设网站,但是有时候感觉内容做得再好,也很难培养忠实用户,这是什么原因呢?用户体验是很重要的一个原因。很多时候,站长们总是
- 随着google product search产品(http://www.google.com/prdhp?tab=wf)的低调上线,马总关
- mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定
- 越来越多的网站和博客开始投放Google AdSense广告,随之而来的是每个发布者的喜悦和烦恼。“今天的广告费又多了”,“单价竟然上涨了0
- 从开源到开放,Discuz!NT 2.6 不仅仅是简单功能的升级,更重要的是应用理念的创新。Discuz!NT 2.6 融入了全新的社区产品
- 因为WordPress自带的搜索功能结果排序非常糟糕,在站点文章多的时候很难通过搜索找到自己要找的内容,不少人已经使用 Google CSE
- 今天继续来讨论有关Godaddy主机的相关问题,现在我们将要介绍的是Redeeming Standard Single Domain SSL
- linux驱动常用函数(copy_from_user open read write)1.open函数定义:int open( const
- Godaddy主机出现500错误,或者是后台不能登陆,或者是无法放表文章等等,这些问题一般是由于没有设置写入权限所造成的,windows主机
- 一、作息时间:能熬夜,不代表你会利用时间,只能说你不会安排时间,每天必须给自己制定严格的作息时间,就是按照这个标准时间来作息,晚上IP流量高
- 我们与谷歌机器人的上一次约会棒极了,但网站们还对响应代码感到比较困惑,不知道自己返回的响应代码是否正确。我们的服务器返回了301永久重定向代