首页  >  问答  >  正文

docker容器启动时里面的lnmp服务器如何也跟着启动

docker容器启动时里面的lnmp服务器如何也跟着启动?
启动后怎么保证容器不自动关闭?

曾经蜡笔没有小新曾经蜡笔没有小新2705 天前878

全部回复(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
  • 取消回复