docker run 或者 docker restart 启动镜像就自动退出
执行命令:docker run --name centos8 -d centos /bin/bash
,通过docker ps
查看正在运行中容器,找不到centos8。通过docker ps -a
查看发现,centos8容器已经处于停止状态了
[root@MiWiFi-R4A-srv server]$ docker run --name centos8 -d centos /bin/bash
a770630ca865b3c3346a321a383f302ed22af9281be8482f4f4debc59218d0d1
[root@MiWiFi-R4A-srv server]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@MiWiFi-R4A-srv server]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a770630ca865 centos "/bin/bash" 37 seconds ago Exited (0) 35 seconds ago centos8
为什么退出?
这是因为docker后台运行,必须有一个前台进程。docker运行的命令如果不是那些一直挂起的命令(e.g. top,ping),就是会自动退出的。而上面的代码中-d centos
就是需要执行的指定的命令。命令如果执行完毕了或者应用终结时,容器会自动停止。
解决方法
以前台进程的形式运行
将运行的程序以前台进程的形式运行,如果容器需要同时启动多个进程,那么也只需要将其中一个挂起到前台即可。
比如上面所说的 centos 容器,只需要将启动指令修改为交互方式启动:
docker run --name centos8 -it centos /bin/bash
又或者是Web容器:
service php5-fpm start && nginx -g "daemon off;"
取巧方式
添加类似于 tail top 这种可以前台运行的程序,持续输出log文件即可。
service nginx start && service php5-fpm start && tail -f /var/log/nginx/error.log
再以上面所说的 web 容器为例,可以写成:
service nginx start && service php5-fpm start && tail -f /var/log/nginx/error.log
自己写脚本
在启动centos/ubuntu容器时,可以做一个手脚:做一个死循环,持续输出任意,这样容器不会认为没事可做而自杀了。
docker run -d centos /bin/bash -c "while true; do echo hello world; sleep 1; done"
docker run 或者 docker restart 启动镜像就自动退出相关推荐
- linux重启docker镜像没了,解决docker run 或者 docker restart 启动镜像就自动退出
执行命令:docker run --name centos8 -d centos /bin/bash,通过docker ps查看正在运行中容器,找不到centos8. 通过docker ps -a查看 ...
- docker run和docker start的区别
docker run: docker run :创建一个新的容器并运行一个命令,是将镜像放入容器并启动容器. docker run一般需要跟几个参数,如下所示: docker run -it --na ...
- docker run 与 docker start区别
说明, docker run 和docker start 都是运行一个docker容器, 区别在于 1. docker run (使用镜像image) docker run是创建一个新容器,并运行 ( ...
- docker run与docker start的区别?
docker run相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start). docker start的作用是:重新启动已 ...
- “docker run”VS“docker exec”,这两个命令有区别吗?
出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一.三.五晚6点10分 与您不见不散! "docker run"和"docker exec" ...
- docker run 与docker start的区别
引用:http://www.wangminli.com/?p=1184 docker run 只在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器时,只需要使用命令docker start 即 ...
- dism 分割镜像_DISM修改WDS启动镜像实现自动捕获镜像
前些日子在做windows OS自动部署的各种测试,用的是微软免费的WDS功能,因为是测试,在抓捕模板的时候,参数基本不变,为了避免每次捕获模板都需要手动敲入参数,这里我用自动应答文件提前将参数写入W ...
- Docker 入门系列(3)- Docker 容器(创建、启动、终止、进入、删除、导入、导出容器、容器和镜像转化)
Docker 容器 简单来说,容器是镜像的一个运行实例.所不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层. 如果认为虚拟机是模拟运行的一整套操作系统(包括内核.应用运行态环境和其他系 ...
- Linux镜像run起来,六、Docker run 运行镜像
Docker 镜像只有运行起来,才会创建一个容器,才能提供对外服务 这里我们先不解释什么是镜像,我们只解释它们之间的关系和类比 我们先说镜像,镜像有点类似于已经打包好了,放在腾讯服务器上的,但还没有装 ...
最新文章
- Python 之 matplotlib (三)坐标轴
- 用原始方法解析复杂字符串,json一定要用JsonMapper么?
- python基础网易_十年Python大牛花了三天总结出来的python基础知识实例,超详细!...
- Universal Windows Platform(UWP)应用的窗口特性
- Midway Serverless 2.0,一体化让前端研发再次提效
- 人口预测和阻尼-增长模型_使用分类模型预测利率-第3部分
- linux 算法函数,数据结构——算法之(012)( linux C 全部字符串操作函数实现)...
- ipv6地址格式_IPV6与IPV4的差异
- IDEA Maven项目添加本地jar包
- 使用单例模式实现自己的HttpClient工具类
- caffe 训练solver配置
- EXCEL实战技巧与数据分析(一)基础应用
- 【数据结构与算法分析】——java语言描述(1)
- QC3.0手机充电器直接输出12V电压,自制诱骗线
- ddos应急处理_DDoS攻击应急体系知多少?
- vue怎么制作甘特图——dhtmlx-gantt
- 项目管理与SSM框架——Spring
- 小米手机定价与《怪诞行为学》
- C++关于引用的分析
- 电脑开机正常,但显示器没反应怎么办
热门文章
- 2022-2028年中国在线旅行预订市场投资分析及前景预测报告
- 2022-2028年中国水处理分离膜行业市场现状调研及市场需求潜力报告
- Git 常用操作(3)- 本地分之显示、创建、切换、合并和删除操作
- 【Sql Server】DateBase-简单的Select查询
- Python 读取文本时的 read/readline/readlines
- Python机器学习——Agglomerative层次聚类
- vue element的若干问题
- 利用UltraScale和UltraScale+FPGA和MPSOC加速DSP设计生产力
- 语义分割车道线,来自两篇论文的融合算法
- 生成对抗网络(GAN)