【发布时间】:2016-03-17 13:09:25
【问题描述】:
我有一个 Digital Ocean droplet,我在其中运行 4 个容器,每个容器都有一个小型 python 应用程序。
有时(一两周一次),所有容器都会停止工作。这不是由它们内部的 python 应用程序引起的。
我制作了一个 systemd 计时器,它每 30 分钟执行一次 bash 脚本来检查容器是否正在运行,如果没有,则启动它们。 计时器工作了好几天,它从来不需要重新启动容器。
但是,有一天我 ssh 到我的 droplet 并看到容器已停止 - 并且
systemctl list-timers --all
告诉我计时器从系统计时器中消失了!它已经不存在了!
容器检查脚本正在写入日志,并且在容器停止的同时日志也停止了。
问题:
如何确定是什么阻止了我的容器?
系统计时器怎么可能就消失了?
我该如何解决这个问题?
我是唯一一个可以 ssh 到那个 droplet 的人,所以其他人不能搞砸。
【问题讨论】:
-
你知道你的容器是否能在重启后存活下来吗?也就是说,它们是与 systemd 单元相关联,还是您手动运行它们? CoreOS 会在检测到需要的安全或关键更新时自行重启,因此如果您的系统没有自动重启,重启可以解释神秘消失的原因。
-
不,它们无法在重新启动后存活,我手动运行它们。如何将它们与系统单元相关联,以便它们能够在重新启动后继续存在?
-
我在下面添加了一个答案。希望对您有所帮助!
标签: docker digital-ocean systemd coreos