泊坞窗,撰写重新启动策略 - 禁用重启之间的延迟指数

问题描述 投票:7回答:2

我有一个码头工人,撰写文件配置与设置为restartalways政策服务

commandpython3 script.py

而script.py只是打印当前时间戳:

import time

print(time.time())

使用docker-compose up我得到这个:

random_service    | 1546974860.1233172
random_service    | 1546974861.9269428
random_service    | 1546974863.616101
random_service    | 1546974865.4225447
random_service    | 1546974867.2077854
random_service    | 1546974869.4796813
random_service    | 1546974873.4290836
random_service    | 1546974880.5541086
random_service    | 1546974894.0697372
random_service    | 1546974920.4050376

正如你所看到的,它看起来像更多的泊坞窗尝试重新启动该服务,更为其重新启动之间等待的时间。在开始的时候它会尝试每隔一两秒钟,然后四,七,十四,26 ...

我如何禁用?我希望我的服务将尽快重新启动,每次停止。

docker docker-compose
2个回答
5
投票

您可以选择以自定义在泊坞窗,撰写级别的重新启动策略 - https://docs.docker.com/engine/reference/commandline/service_create/

--restart条件时重新启动条件满足(“无” |”上失败” |”任何”)(默认为‘任何’)

重启尝试之间--restart延迟延迟(ns |简介| MS | S | M | H)(默认5秒)

--restart-MAX,尝试重新启动的最大次数放弃之前

--restart窗口用来评估重新启动策略窗口(NS |简介| MS | S | M | H)

提到重新启动行为被记录在https://docs.docker.com/engine/reference/run/#restart-policies---restart

之前每次重启才能防患于未然服务器不断增加的延迟(双前一个延迟,始于100毫秒)加入。这意味着守护进程会等待100毫秒,然后200毫秒,400,800,1600,依此类推,直到接通故障限制被击中,或当你停止泊坞窗泊坞窗或RM -f容器。

如果容器被成功地重新启动(容器被启动并运行,至少10秒),该延迟复位到100毫秒其默认值。

你仍然选择使用另一个进程管理器在容器中或在主机操作系统,这可能适合您的需要(新贵,systemd,监事,monit的,...)。一些建议:https://docs.docker.com/config/containers/start-containers-automatically/#use-a-process-manager


0
投票

我刚刚想出了一招是删除重启政策,像这样docker-compose运行watch

watch -n 0 docker-compose up

现在有〜每次运行时2.5秒。

那么,它是不是真的满意的,如果只有一个服务shutsdown(?),但接近我想会发生什么。真正的解决办法是值得欢迎的。

© www.soinside.com 2019 - 2024. All rights reserved.