84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
我每次新建一個容器時,都要進入容器裡面,啟動nginx和php,請問如何每次新建容器時都讓nginx和php自啟動?
你可以使用supervisord來管理
先進入容器安裝supervisord,(安裝過程網上搜下)
建議將主設定檔放在:/etc/supervisord.conf vim /etc/supervisord.conf
[unix_http_server] file=/var/run/supervisor.sock [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisord] nodaemon=true [supervisorctl] serverurl=unix:///var/run/supervisor.sock [include] files = /etc/supervisor/conf.d/*.conf
然後在/etc/supervisor/conf.d/加入php和nginx的啟動指令
例如加nginx, vim /etc/supervisor/conf.d/nginx_super.conf
[program:nginx] command=nginx
然後提交一個新的鏡像出來,例如
docker commit -a "qclaogui" -m "bulabula" nginx-php:commit
寫新的Dokcerfile
FROM nginx-php:commit MAINTAINER xxx@xxx.com EXPOSE 80 443 ENTRYPOINT ["/usr/bin/supervisord","-c","/etc/supervisord.conf"]
重新建構一個鏡像
docker build -t nginx-php:v1 .
基於新建的鏡像運行容器
docker run --name test-nginx-php -p 8081:80 -d nginx-php:v1注意这里用的是-d參數
docker run --name test-nginx-php -p 8081:80 -d nginx-php:v1
-d
根據你的情況,大致解決思路是這個樣子,可以參考一下
你需要在 Dokcerfile 里写上 CMD ["nginx", "-g", "daemon off;"]
Dokcerfile
CMD ["nginx", "-g", "daemon off;"]
你可以使用supervisord來管理
先進入容器安裝supervisord,(安裝過程網上搜下)
建議將主設定檔放在:/etc/supervisord.conf vim /etc/supervisord.conf
然後在/etc/supervisor/conf.d/加入php和nginx的啟動指令
例如加nginx, vim /etc/supervisor/conf.d/nginx_super.conf
然後提交一個新的鏡像出來,例如
docker commit -a "qclaogui" -m "bulabula" nginx-php:commit
寫新的Dokcerfile
重新建構一個鏡像
docker build -t nginx-php:v1 .
基於新建的鏡像運行容器
docker run --name test-nginx-php -p 8081:80 -d nginx-php:v1
注意这里用的是-d
參數根據你的情況,大致解決思路是這個樣子,可以參考一下
你需要在
Dokcerfile
里写上CMD ["nginx", "-g", "daemon off;"]