解决docker run后容器出现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 指定一个伪终端
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
相关文章
如何解决docker-compose网段路由冲突,docker-compose自定义网络
这篇文章主要介绍了如何解决docker-compose网段路由冲突,docker-compose自定义网络问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-01-01docker-compose搭建prometheus+grafana+钉钉告警
本文主要介绍了docker-compose搭建prometheus+grafana+钉钉告警,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-07-07详解Docker学习笔记之搭建一个JAVA Tomcat运行环境
本篇文章主要介绍了详解Docker学习笔记之搭建一个JAVA Tomcat运行环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-02-02基于docker 搭建Prometheus+Grafana的过程详解
这篇文章主要介绍了基于docker 搭建Prometheus+Grafana的过程详解,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-03-03
最新评论