首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自动启动容器(引擎) | Start containers automatically (Engine)

Docker提供了重新启动策略,以控制容器在退出时是自动启动还是在Docker重新启动时启动。重新启动策略可确保链接的容器以正确的顺序启动。Docker建议您使用重新启动策略,并避免使用流程管理器启动容器。

重新启动策略--live-restoredockerd命令的标志不同。使用--live-restore允许您在Docker升级期间保持容器运行,但网络和用户输入将被中断。

使用重新启动策略

要为容器配置重新启动策略,请--restart在使用docker run命令时使用该标志。--restart标志的值可以是以下任何一项:

标志

描述

no

不要自动重启容器。(默认)

on-failure

如果容器由于错误而退出,则将其重新启动,该错误表现为非零退出代码。

unless-stopped

重新启动容器,除非它明确停止或者Docker本身停止或重新启动。

always

如果停止,请始终重新启动容器。

下面的示例启动Redis容器,并将其配置为始终重新启动,除非显式停止或重新启动Docker。

代码语言:javascript
复制
$ docker run -dit --restart unless-stopped redis

重新启动策略详细信息

在使用重新启动策略时,请记住以下几点:

  • 重新启动策略仅在容器成功启动后生效。在这种情况下,成功启动意味着容器至少要运行10秒,而Docker已经开始监视它。这样可以防止一个根本不启动的容器进入重新启动循环。
  • 如果手动停止容器,则会忽略它的重新启动策略,直到Docker守护进程重新启动或手动重新启动容器为止。这是防止重新启动循环的另一次尝试。
  • 重新启动策略仅适用于容器。群集服务的重新启动策略配置不同。查看与重新启动服务相关的标志。

使用流程管理器

如果重新启动策略不适合您的需求,例如Docker以外的进程依赖于Docker容器,则可以使用诸如upstartsystemdsupervisor之类的进程管理器。

流程管理器在容器中运行,检查进程是否正在运行,如果没有运行,则启动进程。它不支持Docker,但只监视容器中的操作系统进程。

Docker不推荐这种方法,因为它依赖于平台,甚至在给定Linux发行版的不同版本中也不同。

警告不要尝试将Docker重新启动策略与宿主级流程管理器相结合,因为这两者将发生冲突。

要使用进程管理器,请将其配置为使用您通常用来手动启动容器的命令docker startdocker service命令启动容器或服务。有关更多详细信息,请参阅特定流程管理器的文档。

扫码关注腾讯云开发者

领取腾讯云代金券