docker工人 – 每个容器一个进程?

我有时使用Docker进行我的开发工作。 当我这样做的时候,我通常会在tutum的一个开箱的LAMP图像上工作 。

我的问题是:如果它在一个容器中运行多个进程,是否不符合使用Docker的目的? (就像Tutum的LAMP映像启动的容器一样)Docker将整个stream程分离成一个单独的容器不是全部的想法吗?

一般情况下,在这种情况下使用一个容器来处理多个进程是必要的或者更有用的。

这种情况发生在一起使用stream程来完成任务的时候。 我可以想象,例如有人想通过使用ELK(Elasticsearch,Logstash,Kibana)将日志logging添加到Web应用程序的情况。 这些东西一起运行,可以有一个监督进程监视一个容器内的进程。

但在大多数情况下, 最好每个容器使用一个进程 。 什么是更多的docker命令应该开始处理自己,例如运行java应用程序

 /usr/bin/java -jar application.jar 

除了运行外部脚本:

 ./launchApplication.sh 

请参阅有关问题的讨论http://www.reddit.com/r/docker/comments/2t1lzp/docker_and_the_pid_1_zombie_reaping_problem/

将进程分成不同的容器通常是一个很好的经验法则,但这不是Docker的主要优点/目的。 docker的好处是不变的。 如果把两个进程放到一个容器中,就可以实现更清晰的逻辑。 虽然在这种情况下,我肯定会考虑至less把数据库剥离到自己的容器中,然后通过一个docker链接与之交谈。 每次重build图像时,数据库不应该closures。