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