解决dockerrun后容器出现Exited(0)情况的问题

自己做了个centos7的openresty的Dockerfile,build之后

成都创新互联公司是一家集网站建设,涧西企业网站建设,涧西品牌网站建设,网站定制,涧西网站建设报价,网络营销,网络优化,涧西网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

docker run -d -p 801:80 openresty:1.19 /usr/local/openresty/nginx/sbin/nginx

之后docker ps -a出现如下情况

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9dee2d04b3b5 openresty:1.19 "/usr/local/openrest…" 24 seconds ago Exited (0) 7 seconds ago gifted_bhabha 69846af3baa7 redis:latest "docker-entrypoint.s…" 24 minutes ago Up 24 minutes 0.0.0.0:6379->6379/tcp rds

openresty状态显示为Exited (0)

原因:

Docker的机制是让容器后台运行,必须至少有一个前台进程,容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),会自动退出

解决:

可以使用包含 -g “daemon off;” 配置项的sh命令以前台方式开启nginx服务

因此启动指令调整如下:

docker run -d -p 801:80 openresty:1.19 /usr/local/openresty/nginx/sbin/nginx -g "daemon off;"

再次docker ps -a看看效果

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0291303ca61b openresty:1.19 "/usr/local/openrest…" 29 seconds ago Up 28 seconds strange_curie 69846af3baa7 redis:latest "docker-entrypoint.s…" 26 minutes ago Up 26 minutes 0.0.0.0:6379->6379/tcp rds

补充:docker启动时一直处于exited状态,解决fangfa

docker启动时一直处于exited状态

解决方法

步骤一、docker rm 容器id 将容器删除

步骤二、docker rmi 镜像id 将镜像删除(只有先删除容器,才能删除镜像)

步骤三、docker build -t tomcat:centos . 重新创建容器

步骤四、docker run --privileged -it -d --name tomcat01 -p 1216:8080 tomcat:centos(加权限和)

指定一个伪终端)

错误导致原因1缺少权限 2没有运行终端

注:–privileged 加权限

-t 指定一个伪终端

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。


分享文章:解决dockerrun后容器出现Exited(0)情况的问题
本文地址:http://myzitong.com/article/sjhhj.html