docker-compose重新启动策略-禁用两次重新启动之间的指数延迟

洛伊奇

我有一个docker-compose文件,配置服务,restart策略设置为always

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

如您所见,似乎docker尝试重新启动服务的次数越多,两次重新启动之间的等待时间就越长。在开始时,它每隔一或两秒钟尝试一次,然后尝试四,七,十四,二十六...

如何禁用它?我希望我的服务在每次停止时都尽快重新启动。

扬·加拉吉

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

--restart-condition满足条件时重新启动(“ none” |“ on-failure” |“ any”)(默认为“ any”)

--restart-delay重新启动尝试之间的延迟时间(ns | us | ms | s | m | h)(默认为5s)

--restart-max-attempts放弃之前的最大重新启动次数

--restart-window用于评估重启策略的窗口(ns | us | ms | s | m | h)

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

在每次重新启动之前,添加一个不断增加的延迟(从100毫秒开始,是以前的延迟的两倍),以防止服务器泛滥。这意味着守护程序将等待100 ms,然后等待200 ms,400、800、1600,依此类推,直到达到失败限制,或者当docker stop或docker rm -f容器时。

如果成功重启容器(容器已启动并运行至少10秒钟),则延迟将重置为其默认值100毫秒。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Golang Docker容器未在Docker-Compose中重新启动

Docker:容器继续重新启动

如何使用docker-compose重新启动单个容器

Docker:将重新启动策略添加到已创建的容器中

无法停止或重新启动Docker容器

重新启动后以特定顺序启动Docker容器

在Docker上重新启动Apache

Ansible并重新启动Docker服务

docker-compose重新启动间隔

为什么Docker Compose重新启动会渲染容器输出的次数越来越多?

Docker消息:“忽略不支持的选项:重新启动”是否意味着重新启动策略被忽略了?

重新启动Docker后Docker Compose无法启动服务网络

如何重新启动所有Docker容器并在每次重新启动之间有一个暂停?

重新启动后的Django docker-compose需要再次迁移

docker-compose-重新启动单个服务的问题

重新启动Docker Compose并更新数据库

如何在PyCharm的运行配置中重新启动链接的Docker Compose服务?

如何更改Pod重新启动策略

docker-compose-是否可以在不重新启动容器的情况下更新标签?

发出重新启动命令后,Google Pixel设备重新启动两次

失败后和除非已停止,docker重新启动策略有什么区别?

重新启动Keycloak Docker容器后无法启动

更新后容器始终在docker-compose.yml中没有重新启动并重新启动

docker中的Redis启动/重新启动多次?

重新启动后如何自动启动docker?

Docker - Mysql 容器正在重新启动

如何在容器故障时使用 docker-compose 重新启动 docker 容器

docker-compose 在失败时重新启动

运行 rake assets:precompile 后重新启动 docker-compose 会重置更改