无花果docker监控破碎的容器

我有一个无花果configuration启动Ndocker容器(应用程序,redis,mongo,postgre等…)

当我运行fig up一切都好。

  Name Command State Ports -------------------------------------------------------------------------- my_mongodb_1 /usr/local/bin/run Up 28017/tcp, 27017/tcp my_redis_1 /usr/local/bin/run Up 6379/tcp my_pg_1 /usr/local/bin/run Up 5432/tcp my_app_1 ... Up 443->443/tcp, 80->80/tcp 

但其中一个不重要的原因可能是closures了其中一个容器。

  Name Command State Ports -------------------------------------------------------------------------- my_mongodb_1 /usr/local/bin/run Up 28017/tcp, 27017/tcp my_redis_1 /usr/local/bin/run Exit 6379/tcp my_pg_1 /usr/local/bin/run Up 5432/tcp my_app_1 ... Up 443->443/tcp, 80->80/tcp 

可以configurationsupervisord来监视所有容器,并启动已经closures的容器

您必须在不同的文件中configuration每个程序(容器),并且它们必须/etc/supervisor/conf.d/文件夹中,主pipe应该在其中查找程序。 在你的情况下,我build议:

 #It is the /redis.conf [program:redis] command= /bin/bash -c "fig up redis" "fig logs redis" directory=/path/of/fig_file autostart=true autorestart=true stdout_logfile=/path/to/log/redis.log redirect_stderr=true 

对于pg:

 #It is the /pg.conf [program:pg] command= /bin/bash -c "fig up pg" "fig logs pg" directory=/path/of/fig_file autostart=true autorestart=true stdout_logfile=/path/to/log/pg.log redirect_stderr=true 

和其他程序(mongo和app)相同的configuration(mongo.conf和app.conf)。

当你启动你的机器或重新启动它,每个程序必须启动。

上面的例子你运行容器,你可以保持它的活着,因为你休闲的日志。

您可以通过以下方式检查每个程序的状态:

 sudo supervisorctl 

并看到:

 app RUNNING pid 17036, uptime 0:22:28 mongodb RUNNING pid 17018, uptime 0:22:29 pg RUNNING pid 17030, uptime 0:22:28 redis RUNNING pid 17019, uptime 0:22:29 

祝你好运!!

我会用Upstart,这个我有很好的经验。 当进程不守护进程时,Supervisord是最好的。