docker容器啟動時裡面的lnmp伺服器如何也跟著啟動? 啟動後怎麼保證容器不會自動關閉?
docker建議一個容器一個服務,可以把nginx,mysql,PHP-FPM(PHP),拆分到不同的容器中,當你拆分好後可以使用docker的restart機制來保證服務的可用性,可以參考我這個方式docker-node.js
docker的原理在於,docker run運作的容器,實質上只是一個進程,後端呼叫各種系統呼叫進行隔離,使之看起來像個虛擬機器。
docker run 運行起來的進程和其子進程,只要主進程不死掉,docker容器就不會掛掉。
根據這一點,我們可以把supervisord當成主進程,連帶著啟動php和nginx。由supervisord管理php與nginx進程。
現成的dockerfile。
supervisord進程管理+nginx+php7
php+nginx+supervisord的dockerfile:https://github.com/qiukeren/d...
恩,同時會安裝salt-minion,如果不需要的話,自己客製化就行了。
專案地址:
https://github.com/qiukeren/d...,直接執行bash build.sh就可以產生容器。
bash build.sh
樓上回答沒有解決問題
這篇文章可以解決樓主的問題
https://javablog.net/page/250...
非要在一個docket裡運行多個進程並沒人攔著你。隨意
要確保容器啟動後,lnmp也啟動,要確保nginx mysql php都在前台啟動,否則容器檢測到這些進程脫離了容器以後台啟動了,容器自身會自動關閉的。關於lnmp的容器化,可以參考https://www.centos.bz/2017/02...
docker建議一個容器一個服務,可以把nginx,mysql,PHP-FPM(PHP),拆分到不同的容器中,當你拆分好後可以使用docker的restart機制來保證服務的可用性,可以參考我這個方式docker-node.js
docker的原理在於,docker run運作的容器,實質上只是一個進程,後端呼叫各種系統呼叫進行隔離,使之看起來像個虛擬機器。
docker run 運行起來的進程和其子進程,只要主進程不死掉,docker容器就不會掛掉。
根據這一點,我們可以把supervisord當成主進程,連帶著啟動php和nginx。由supervisord管理php與nginx進程。
現成的dockerfile。
supervisord進程管理+nginx+php7
php+nginx+supervisord的dockerfile:
https://github.com/qiukeren/d...
恩,同時會安裝salt-minion,如果不需要的話,自己客製化就行了。
專案地址:
https://github.com/qiukeren/d...,直接執行
bash build.sh
就可以產生容器。樓上回答沒有解決問題
這篇文章可以解決樓主的問題
https://javablog.net/page/250...
非要在一個docket裡運行多個進程並沒人攔著你。隨意
要確保容器啟動後,lnmp也啟動,要確保nginx mysql php都在前台啟動,否則容器檢測到這些進程脫離了容器以後台啟動了,容器自身會自動關閉的。關於lnmp的容器化,可以參考https://www.centos.bz/2017/02...