非常教程

Docker 17参考手册

引擎: 管理员指南 | Engine: Admin Guide

自动启动容器(引擎) | 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。

$ docker run -dit --restart unless-stopped redis

重新启动策略详细信息

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

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

使用流程管理器

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

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

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

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

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

引擎: 管理员指南 | Engine: Admin Guide相关

1.Amazon CloudWatch记录日志记录驱动程序(引擎) | Amazon CloudWatch logs logging driver (Engine)
2. 绑定挂载 | Bind mounts (Engine)
3.使用Prometheus(引擎)收集Docker指标 | Collect Docker metrics with Prometheus (Engine)
4.配置和运行Docker(引擎) | Configuring and running Docker (Engine)
5.配置日志记录驱动程序 | Configuring logging drivers (Engine)
6.使用systemd控制和配置Docker(引擎) | Control and configure Docker with systemd (Engine)
7.ETW日志记录驱动程序(引擎) | ETW logging driver (Engine)
8.流利的日志驱动程序(引擎) | Fluentd logging driver (Engine)
9.格式化命令和日志输出(引擎) | Format command and log output (Engine)
10.Google Cloud日志记录驱动程序(引擎) | Google Cloud logging driver (Engine)
11.Graylog扩展格式(GELF)日志记录驱动程序(引擎) | Graylog Extended Format (GELF) logging driver (Engine)
12.Journald日志记录驱动程序(引擎) | Journald logging driver (Engine)
13.JSON文件日志记录驱动程序(引擎) | JSON File logging driver (Engine)
14.在守护进程停机期间保持容器处于活动状态(引擎) | Keep containers alive during daemon downtime (Engine)
15.限制容器的资源(引擎) | Limit a container's resources (Engine)
16.通过大使容器链接(引擎) | Link via an ambassador container (Engine)
17.记录驱动程序的日志标记(引擎) | Log tags for logging driver (Engine)
18.Logentries日志驱动程序(引擎) | Logentries logging driver (Engine)
19.PowerShell DSC用法(引擎) | PowerShell DSC usage (Engine)
20.修剪未使用的Docker对象(引擎) | Prune unused Docker objects (Engine)
21.在容器中运行多个服务(引擎) | Run multiple services in a container (Engine)
22.运行时指标(引擎) | Runtime metrics (Engine)
23.Splunk日志记录驱动程序(引擎) | Splunk logging driver (Engine)
24.存储概述(引擎) | Storage overview (Engine)
25.Syslog日志记录驱动程序(引擎) | Syslog logging driver (Engine)
26.tmpfs mounts
27.解决卷问题(引擎) | Troubleshoot volume problems (Engine)
28.使用日志驱动程序插件(引擎) | Use a logging driver plugin (Engine)
29.使用Ansible(引擎) | Using Ansible (Engine)
30.使用Chef(引擎) | Using Chef (Engine)
31.使用Puppet(引擎) | Using Puppet (Engine)
32.查看容器的日志(引擎) | View a container's logs (Engine)
33.Volumes (Engine)
Docker 17

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

主页 https://docker.com/
源码 https://github.com/docker/docker
版本 17
发布版本 17.06