docker启动容器之后立马自动关闭

问题现象:


centos 启动一个容器添加了-d 参数,但是docker ps 或者docker ps -a查看却已经退出了
shell>docker run -d centos
a44b2b88559b68a2221c9574490a0e708bff49d88ca21f9e59d3eb245c7c0547
shell>docker ps 

 

退出原因


1、docker容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为空闲,就会自行退出
2、容器运行的命令如果不是那些一直挂起的命令( 运行top,tail、循环等),就是会自动退出
3、这个是 docker 的机制问题

 

解决方案
 

在dockerfile 的cmd或者enterpoint的最后加上

&& /bin/bash

然后运行镜像时(run)加上参数-itd,原理很简单,就是后台分配一个tty给bash,这个方法比那些写死循环的优雅很多;


版权声明:本文为THMAIL原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。