Docker在conatiner中启动2个进程

新来的Docker和我读Dockerfile只能有1个CMD。

那么我该如何启动我的数据库服务器和应用程序服务器呢? 就像是:

CMD /root/database/bin/server run & CMD /root/appserver/bin/server run & 

Docker只能在容器中启动一个进程 – 但是这个进程可以启动任何喜欢的进程。

Supervisord一直是一个非常stream行的select,然后继续出现你想要/需要的东西。

Docker可以运行尽可能多的进程。 在同一个容器中运行数据库和应用程序服务器是没有问题的。 但是,只能在容器中运行一个命令,因此该命令必须启动所有其他进程,只要容器运行(如果停止,容器将停止运行),该命令就必须运行。

所以开始一个shell脚本,它本身将启动所有其他的事情:

 CMD /run.sh 

shell脚本可能如下所示:

 echo "Lets start up" :: Run your database server in background /root/database/bin/server run & :: Run your app server (not in background to keep the container up) /root/appserver/bin/server run