如何在CoreOS中重新启动后自动重启Docker容器?

时间:2013-09-13 12:13:43

标签: docker coreos

假设在重新启动操作系统时,任何init.d或systemd类似进程都会自动重启Docker守护程序,重启一个或多个Docker容器的首选方法是什么?例如,我可能在反向代理或数据库服务器后面有许多Web服务器。

6 个答案:

答案 0 :(得分:31)

如果您使用docker -d -r启动守护程序,它将重新启动守护程序停止之前运行的所有容器。 这将成为下一版本中的默认行为。

答案 1 :(得分:14)

CoreOS使用systemd来管理长时间运行的服务:

答案 2 :(得分:11)

对我有用的是将--restart='always'添加到容器{run -d ...}命令

答案 3 :(得分:1)

我见过的唯一文件是Docker's Host Integration docs,它们对细节有点了解。

基本上,它建议使用-r=false启动守护程序并使用systemd(如果您正在使用CoreOS以外的其他内容,则使用upstart)。

答案 4 :(得分:1)

对于想要自动重启docker容器的人,但在运行它时没有指定--restart标记(默认为' no'),您可以使用docker {{3} }命令添加以下三个选项之一:

    接通故障
  • 除非-停止
  • 总是

有关详细信息,请参阅update。人们在always重新启动标记时出现问题,可以考虑使用on-failureunless-stopped选项。

答案 5 :(得分:-1)

使用RestartRestartSec使其有效:

# Restart after crash
Restart=on-failure
# Give the service 10 seconds to recover after the previous restart
RestartSec=10s

查看the documentation