【问题标题】:docker-compose restart container if service is dead如果服务死了,docker-compose 重新启动容器
【发布时间】:2016-11-17 11:53:24
【问题描述】:

如果在 docker-compose 中运行的服务返回的退出代码不同于 0,是否可以在 docker-compose 中重新启动容器? docker-compose.yml 选项restart: always 不起作用。有什么办法可以解决还是这是服务问题,我应该在容器内寻找答案?

我使用 supervisord,但添加选项 autorestart=true 不起作用,即使服务因退出代码 255 而崩溃 - RUNNING_PID 文件(由系统创建)没有被删除。

感谢您的回复。

【问题讨论】:

    标签: docker-compose docker-container


    【解决方案1】:

    restart: always不管退出码如何都会重启容器,所以即使容器内运行的进程退出码是0。我正在使用restart: on-failure,它完全符合您的描述。它在进程的非零退出代码上重新启动容器。进程退出且未重新启动后,您可以使用docker-compose ps检查退出代码

    【讨论】:

    • 感谢您的回复,但我的情况有点不同——即使服务以不同于 0 的代码退出,容器也不会显示它(它仍然在 docker-compose ps 中标记为 Up)。
    猜你喜欢
    • 1970-01-01
    • 2017-10-16
    • 2018-03-29
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 2019-02-13
    • 2018-12-16
    • 1970-01-01
    相关资源
    最近更新 更多