原文地址

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

重启策略跟 dockerd 命令的 --live-restore 标志不同。使用 --live-restore 标志使得在 Docker 升级过程中容器可以保持运行,虽然网络和用户输入都中断了。

1. 使用重启策略

要为容器配置重启策略,使用 docker run 命令的时候添加 --restart 标志。--restart 标志的值可以是下面几个:

标志 描述
no 不自动重启容器(默认值)
on-failure 如果容器由于错误而退出,则将其重新启动,非零退出代码表示错误
unless-stopped 重新启动容器,除非明确停止容器或者 Docker 被停止或重新启动
always 只要容器停止了,就重新启动

下面例子的 Redis 容器会一直重启,除非明确停止这个容器或 Docker 重启了。

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

1.1 重启策略详情

使用重启策略时,记住以下几点:

  • 重启策略只在容器启动成功后才生效。这种情况下,成功启动的意思是容器运行 10 秒以上,并且 Docker 已经开始监控它。这可以防止根本不启动的容器进入重启循环。
  • 如果你手动停止一个容器,它的重启策略会被忽略,直到 Docker 守护进程重启或容器手动重启。这是防止重启循环的另一个尝试。
  • 重启策略只作用于容器。swarm 服务的重启策略配置方式不同。查看 与服务重启相关的标志

2. 使用进程管理器

如果重启策略无法满足你的需求,例如依赖 Docker 容器的 Docker 外部进程,可以使用进程管理器,例如 upstartsystemdsupervisor

警告:不要尝试将 Docker 重启策略与主机级进程管理器结合使用,因为这会产生冲突。

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

2.1 在容器内使用进程管理器

进程管理器也可以在容器内运行,以检查进程是否正在运行,如果没运行,则启动/重新启动进程。

警告:Docker 对这些无感知,只是在容器内监控操作系统进程。

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

Docker 生产环境之配置容器 - 自动启动容器的更多相关文章

  1. [转]Docker 生产环境之配置容器 - 限制容器资源

    默认情况下,容器没有资源限制,可以使用主机内核调度程序允许的给定资源.Docker 提供了一些方法来控制容器可以使用多少内存.CPU 或块 IO,并设置 docker run 命令的运行时配置标志.本 ...

  2. 【Spring】使用@Profile注解实现开发、测试和生产环境的配置和切换,看完这篇我彻底会了!!

    写在前面 在实际的企业开发环境中,往往都会将环境分为:开发环境.测试环境和生产环境,而每个环境基本上都是互相隔离的,也就是说,开发环境.测试环境和生产环境是互不相通的.在以前的开发过程中,如果开发人员 ...

  3. Yarn 生产环境核心配置参数

    目录 Yarn 生产环境核心配置参数 ResourceManager NodeManager Container Yarn 生产环境核心配置参数 ResourceManager 配置调度器 yarn. ...

  4. 分离Webpack开发环境与生产环境的配置

    这是Webpack+React系列配置过程记录的第五篇.其他内容请参考: 第一篇:使用webpack.babel.react.antdesign配置单页面应用开发环境 第二篇:使用react-rout ...

  5. docker从零开始网络(七) 配置daemon和容器

    启用IPv6支持 在Docker容器或swarm服务中使用IPv6之前,需要在Docker守护程序中启用IPv6支持.之后,您可以选择将IPv4或IPv6(或两者)与任何容器,服务或网络一起使用. 注 ...

  6. wayne生产环境部署(360的容器发布平台-开源)

    参考文档 http://360yun.org/wayne/dev/develop-flow.html 使用rke部署k8s,详细过程见前面 文章,同时部署好kubectl 安装go yum insta ...

  7. Docker生产环境实践指南

    技术栈:1. 构建系统2. 镜像仓库3. 宿主机管理4. 配置管理5. 部署6. 编排7. 日志8. 监控 镜像:1. 如果用户像往常一样运行包安装命令,这些永远也用不上的缓存包文件将会永远地成为镜像 ...

  8. docker 生产环境基础应用

    项目背景 此项目是在已有项目基础上,开发的一套相对独立的系统.项目总体分为三部分,前端.中间应用服务.流媒体服务.前端技术选型为vue+elementui,中间应用服务为.net core webap ...

  9. Spring.profile实现开发、测试和生产环境的配置和切换

    软件开发过程一般涉及“开发 -> 测试 -> 部署上线”多个阶段,每个阶段的环境的配置参数会有不同,如数据源,文件路径等.为避免每次切换环境时都要进行参数配置等繁琐的操作,可以通过spri ...

随机推荐

  1. OOP作业总结一

    PS:建议用 Edge 查看此博客,Chrome 的话文章界面会有点窄,看起来可能会比较难受,我想改宽点但是不会改. 我会改了!改宽了一些,现在看起来舒服了很多,芜湖. 问题数据已修复,我们胜利辣! ...

  2. 【解决方案】Pyinstaller打包exe策略(简单实用)

    场景说明 在业务场景中, 经常需要Python开发一些小程序/脚本/GUI界面,进行简单的项目测试或未安装Python 的小伙伴们使用. 使用Pyinstaller将Python脚本或者项目打包,生成 ...

  3. selenium基本使用,及cannot find chrome binary解决方案

    什么是selenium? Selenium是一个用于Web应用程序测试的工具. Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样. 支持通过各种driver(FirfoxDriver ...

  4. 我個人喜歡的一些Ubuntu的相關配置

    1.vim vim安裝: sudo apt-get install vim-gtk vim美化:刚安装的VIM,可能界面并不是十分友好,我们可以更改vim的配置文件,按照我们的需求去修改它.在命令行下 ...

  5. SCTL 涅槃重生:投入 RAL 的怀抱

    在<DistSQL:像数据库一样使用 Apache ShardingSphere>一文中,PMC 孟浩然为大家介绍了 DistSQL 的设计初衷和语法体系,并通过实战操作展示了一条 SQL ...

  6. 使用nacos作为配置中心统一管理配置

    基础环境 引入所需依赖包 <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>s ...

  7. [cf578F]Mirror Box

    构造如下一张无向图: 1.点集大小为$(n+1)(m+1)$,即所有格点 2.边集大小为$nm$,即所有镜子所连结的两个格点 对于一个确定的镜子状态,即可确定上图,那么来考虑什么样的图是合法的 结论: ...

  8. CODING 项目协同 2.0 —— 让协作有条不紊

    本文为 CODING 高级产品经理王海明 在腾讯云 CIF 工程效能峰会上所做的分享.文末可前往峰会官网,观看回放并下载 PPT. 大家好,我是 CODING 高级产品经理王海明,今天与大家分享的是项 ...

  9. Apache Kafka分布式流处理平台及大厂面试宝典v3.0.0

    概述 **本人博客网站 **IT小神 www.itxiaoshen.com 定义 Apache Kafka官网地址 http://kafka.apache.org/ 最新版本为 3.0.0 Apach ...

  10. IPv6 寻址方式简介

     在计算机网络中,寻址模式是指在网络上托管地址的机制.IPv6 提供了多种类型的模式,可以通过这些模式对单个主机进行寻址.也可以同时对多个主机进行寻址或者寻址最近距离的主机. 单播寻址 在单播寻址方式 ...