docker run之后状态总是Exited
add-it
dockerrun-it-nametest-dnginx:latest/bin/bash
-d:后台运行容器,并返回容器ID;
-i:以交互模式运行容器,通常与-t同时使用;
-t:为容器重新分配一个伪输入终端,通常与-i同时使用;
补充知识:docker-compose通过sh命令启动nginx容器自动退出exitedwithcode0
docker-compose使用的模板文件中有通过entrypoint或者command参数设置容器启动自动执行sh命令开启nginx服务,但是docker-composeup后容器自动退出了
nginx-web1exitedwithcode0
nginx-web2exitedwithcode0
nginx-web3exitedwithcode0
原因:Docker的机制是让容器后台运行,必须至少有一个前台进程,容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),会自动退出
解决:可以使用包含-g“daemonoff;”配置项的sh命令以前台方式开启nginx服务
nginx-c/usr/local/nginx/conf/nginx.conf-g"daemonoff;"
如果容器需要同时启动多个进程,只需要将其中一个挂起到前台即可,例如:
servicephp-fpmstart&&nginx-g"daemonoff;"
或
servicephp-fpmstart&&servicenginxstart&&tail-f/var/log/nginx/error.log
以上这篇dockerrun之后状态总是Exited就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。