【问题标题】:fig docker monitoring broken container无花果 docker 监控损坏的容器
【发布时间】:2014-07-11 16:05:32
【问题描述】:

我有一个用于启动 N 个 docker 容器(app、redis、mongo、postgre 等)的 fig 配置

当我运行 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 

但由于一个不重要的原因,可以关闭其中一个容器。

      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 

可以配置supervisord监控所有容器并启动已经关闭的容器

【问题讨论】:

    标签: docker supervisord


    【解决方案1】:

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

    #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)的配置(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
    

    祝你好运!

    【讨论】:

    • 哇!!!!谢谢。不可思议的想法 command= /bin/bash -c "fig up pg" "fig logs pg" with indent
    【解决方案2】:

    我会使用 Upstart,我从中获得了很好的经验。当进程不守护进程时,Supervisord 是最好的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      • 2019-07-24
      • 2019-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多