add -it
docker run -it -name test -d nginx:latest /bin/bash
-d: 后臺(tái)運(yùn)行容器,并返回容器ID;
-i: 以交互模式運(yùn)行容器,通常與 -t 同時(shí)使用;
-t: 為容器重新分配一個(gè)偽輸入終端,通常與 -i 同時(shí)使用;
補(bǔ)充知識(shí):docker-compose 通過(guò)sh命令啟動(dòng)nginx 容器自動(dòng)退出exited with code 0
docker-compose使用的模板文件中有通過(guò)entrypoint或者command參數(shù)設(shè)置容器啟動(dòng)自動(dòng)執(zhí)行sh命令開(kāi)啟nginx服務(wù),但是docker-compose up后容器自動(dòng)退出了
nginx-web1 exited with code 0
nginx-web2 exited with code 0
nginx-web3 exited with code 0
原因:Docker的機(jī)制是讓容器后臺(tái)運(yùn)行,必須至少有一個(gè)前臺(tái)進(jìn)程,容器運(yùn)行的命令如果不是那些一直掛起的命令(比如運(yùn)行top,tail),會(huì)自動(dòng)退出
解決:可以使用包含 -g “daemon off;” 配置項(xiàng)的sh命令以前臺(tái)方式開(kāi)啟nginx服務(wù)
nginx -c /usr/local/nginx/conf/nginx.conf -g "daemon off;"
如果容器需要同時(shí)啟動(dòng)多個(gè)進(jìn)程,只需要將其中一個(gè)掛起到前臺(tái)即可,例如:
service php-fpm start && nginx -g "daemon off;"
或
service php-fpm start && service nginx start && tail -f /var/log/nginx/error.log
以上這篇docker run之后狀態(tài)總是Exited就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。