Docker 17参考手册
引擎: 管理员指南 | Engine: Admin Guide
自动启动容器(引擎) | Start containers automatically (Engine)
Docker提供了重新启动策略,以控制容器在退出时是自动启动还是在Docker重新启动时启动。重新启动策略可确保链接的容器以正确的顺序启动。Docker建议您使用重新启动策略,并避免使用流程管理器启动容器。
重新启动策略--live-restore
与dockerd
命令的标志不同。使用--live-restore
允许您在Docker升级期间保持容器运行,但网络和用户输入将被中断。
使用重新启动策略
要为容器配置重新启动策略,请--restart
在使用docker run
命令时使用该标志。--restart
标志的值可以是以下任何一项:
标志 |
描述 |
---|---|
no |
不要自动重启容器。(默认) |
on-failure |
如果容器由于错误而退出,则将其重新启动,该错误表现为非零退出代码。 |
unless-stopped |
重新启动容器,除非它明确停止或者Docker本身停止或重新启动。 |
always |
如果停止,请始终重新启动容器。 |
下面的示例启动Redis容器,并将其配置为始终重新启动,除非显式停止或重新启动Docker。
$ docker run -dit --restart unless-stopped redis
重新启动策略详细信息
在使用重新启动策略时,请记住以下几点:
- 重新启动策略仅在容器成功启动后生效。在这种情况下,成功启动意味着容器至少要运行10秒,而Docker已经开始监视它。这样可以防止一个根本不启动的容器进入重新启动循环。
- 如果手动停止容器,则会忽略它的重新启动策略,直到Docker守护进程重新启动或手动重新启动容器为止。这是防止重新启动循环的另一次尝试。
- 重新启动策略仅适用于容器。群集服务的重新启动策略配置不同。查看与重新启动服务相关的标志。
使用流程管理器
如果重新启动策略不适合您的需求,例如Docker以外的进程依赖于Docker容器,则可以使用诸如upstart,systemd或supervisor之类的进程管理器。
流程管理器在容器中运行,检查进程是否正在运行,如果没有运行,则启动进程。它不支持Docker,但只监视容器中的操作系统进程。
Docker不推荐这种方法,因为它依赖于平台,甚至在给定Linux发行版的不同版本中也不同。
警告不要尝试将Docker重新启动策略与宿主级流程管理器相结合,因为这两者将发生冲突。
要使用进程管理器,请将其配置为使用您通常用来手动启动容器的命令docker start
或docker service
命令启动容器或服务。有关更多详细信息,请参阅特定流程管理器的文档。
引擎: 管理员指南 | Engine: Admin Guide相关

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
主页 | https://docker.com/ |
源码 | https://github.com/docker/docker |
版本 | 17 |
发布版本 | 17.06 |