搜尋

首頁  >  問答  >  主體

docker容器啟動時裡面的lnmp伺服器如何也跟著啟動

docker容器啟動時裡面的lnmp伺服器如何也跟著啟動?
啟動後怎麼保證容器不會自動關閉?

曾经蜡笔没有小新曾经蜡笔没有小新2811 天前960

全部回覆(4)我來回復

  • 習慣沉默

    習慣沉默2017-04-27 09:04:16

    docker建議一個容器一個服務,可以把nginx,mysql,PHP-FPM(PHP),拆分到不同的容器中,當你拆分好後可以使用docker的restart機制來保證服務的可用性,可以參考我這個方式docker-node.js

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-04-27 09:04:16

    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就可以產生容器。

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-27 09:04:16

    樓上回答沒有解決問題

    這篇文章可以解決樓主的問題

    https://javablog.net/page/250...

    非要在一個docket裡運行多個進程並沒人攔著你。隨意

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-04-27 09:04:16

    要確保容器啟動後,lnmp也啟動,要確保nginx mysql php都在前台啟動,否則容器檢測到這些進程脫離了容器以後台啟動了,容器自身會自動關閉的。關於lnmp的容器化,可以參考https://www.centos.bz/2017/02...

    回覆
    0
  • 取消回覆