无花果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是最好的。