是否有可能在Docker容器中安装一个复杂的服务器?

Docker似乎更适合于单进程应用程序和服务,但它是否能够为更复杂的应用程序(具有多个进程,侦听端口,相当大的存储使用情况)提供稳定的控制?

是! 您可以使用Supervisor,monit,runit,甚至是一个“真正的”init系统(包括upstart或systemd)来运行多个进程。 你甚至可以使用如下的便宜的shell脚本:

#!/bin/sh ( while true; do run-process-1; done; ) & ( while true; do run-process-2; done; ) & wait 

请注意,我有一个监督图像和github上的一些例子。 如果有人认为它有用:我也写了一个博客 。

我主要使用主pipe来保持deamon进程运行,但是你也可以创build复杂的环境(例如指定启动进程的顺序等)。