现象:docker容器一启动就自动退出
退出原因
1、docker容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为空闲,就会自行退出
2、容器运行的命令如果不是那些一直挂起的命令( 运行top,tail、循环等),就是会自动退出
3、这个是 docker 的机制问题
解决方案
方案1:
网上有很多介绍,就是起一个死循环进程,让他不停的循环下去,前台永远有进程执行,那么容器就不会退出了,以centos为例
shell>docker run -d centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
缺点: 命令太冗长了,还占用一个终端
方案2:
shell>docker run -dit docker.elastic.co/elasticsearch/elasticsearch:5.6.16 /bin/bash
添加-it 参数交互运行
添加-d 参数后台运行
这样就能启动一个一直停留在后台运行的docker.elastic.co/elasticsearch/elasticsearch:5.6.16了。