Docker是否每隔X秒钟都支持重启容器?

我有一个Logstash容器,保持两个数据源同步。 运行时,它会查询一个数据库中的未同步条目,并将它们发布到另一个数据库中。 我想每隔10秒运行一次这个容器。

我一直在做的是指定--restart=always这样当容器退出时,它自己重新启动,大约需要5秒钟,这对于这个用例来说太频繁了。

Docker是否支持我想要实现的function(在重新启动之间等待X秒,或者任何types的调度),还是应该删除重新启动策略并使用cron计划每10秒运行一次?

如果您的容器成功退出,那么将立即使用--restart=always重新启动它

在每次重新启动之前添加一个不断增加的延迟(前一个延迟的两倍,从100毫秒开始),以防止服务器泛滥。 这意味着守护程序将等待100毫秒,然后等待200毫秒,400,800,1600等,直到命中失败的限制,或者当您泊坞窗停泊或dockerrm – 容器。

这是你猜的部分:

如果容器重启成功(容器启动并运行至less10秒钟),则延迟重置为默认值100 ms。

你可以做的是:

  • 每10秒钟用一个cron重启你的容器
  • 在您的容器中configuration一个cron,并每10秒启动一次logstash
  • 使用一个shell脚本,在一个循环中,启动logstash然后睡10
  • 也许logstash有类似已经内置的东西? (我知道,例如jdbc-input-plugin有一些调度参数)