docker自动启动容器
Docker提供了重新启动策略 来控制容器在退出时或Docker重新启动时是否自动启动。重新启动策略可确保以正确的顺序启动链接的容器。Docker建议您使用重新启动策略,并避免使用进程管理器来启动容器。
重新启动策略--live-restore
与dockerd
命令的标志不同。--live-restore
尽管网络和用户输入中断,但使用允许您在Docker升级期间保持容器运行。
使用重启策略
要为容器配置重新启动策略,请--restart
在使用该docker run
命令时使用该标志。--restart
标志的值可以是以下任何一种:
旗 | 描述 |
---|---|
no |
不要自动重启容器。(默认) |
on-failure |
如果容器由于错误而退出,则重新启动容器,该错误表现为非零退出代码。 |
always |
如果容器停止,请务必重启容器。如果手动停止,则仅在Docker守护程序重新启动或手动重新启动容器本身时才重新启动。(参见重启政策详情中列出的第二个项目) |
unless-stopped |
类似于always ,除了当容器停止(手动或其他方式)时,即使在Docker守护程序重新启动后也不会重新启动容器。 |
以下示例启动Redis容器并将其配置为始终重新启动,除非明确停止或重新启动Docker。
$ docker run -dit --restart unless-stopped redis
重启政策详情
使用重启策略时请记住以下几点:
重启策略仅在容器成功启动后生效。在这种情况下,成功启动意味着容器启动至少10秒并且Docker已开始监视它。这可以防止根本不启动的容器进入重启循环。
如果手动停止容器,则会忽略其重新启动策略,直到Docker守护程序重新启动或手动重新启动容器。这是防止重启循环的另一种尝试。
重新启动策略仅适用于容器。群组服务的重新启动策略配置不同。请参阅与服务重新启动相关的 标志。
如果run时没有添加restart 可以通过update命令追加
docker update --restart=always web
1、先后台启动容器未加restart参数
2、docker ps 查看了当前运行的容器
3、重启docker 服务
4、再次docker ps 查看当前运行的容器,发现容器并没有运行
5、利用 update 设置 restart=always
6、重启docker 服务
7、再次docker ps 查看当前运行的容器,此时发现已经自动启动容器
---------------------
使用流程管理器
如果重新启动策略不适合您的需要,例如当Docker之外的进程依赖Docker容器时,您可以使用流程管理器,例如 upstart, systemd或supervisor。
警告:不要尝试将Docker重新启动策略与主机级进程管理器结合使用,因为这会产生冲突。
要使用进程管理器,请将其配置为使用您通常用于手动启动容器的相同docker start
或docker service
命令来启动容器或服务。有关更多详细信息,请参阅特定流程管理器的文档。
在容器内使用进程管理器
进程管理器也可以在容器内运行,以检查进程是否正在运行,如果没有则启动/重启进程
官方介绍在此,以上内容引用官网内容
https://docs.docker.com/engine/admin/start-containers-automatically/#use-a-process-manager
docker自动启动容器的更多相关文章
- Docker应用容器引擎
1.Docker概述 1.1.Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言开发.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到 ...
- Docker的容器
容器是一个打包了应用和服务的环境,是一个轻量级的虚拟机,每一个容器都由一组特定的应用和必要的依赖库组成. 容器的管理操作 容器常见的命令:查看.创建.启动.终止和删除 创建容器 docker crea ...
- 【转】深入 Docker:容器和镜像
在本专栏往期的 Flux7 系列教程 里,我们已经简单地探讨了 Docker 的基本操作.而在那篇教程中,我们一直是简单地将容器当成是"正在运行的镜像",并没有深入地区分镜像和容器 ...
- 理解Docker单机容器网络
在” 理解Docker单机容器网络 “一文中,还有一个Docker容器网络的功能尚未提及,那就是Docker容器的端口映射.即将容器的服务端口P’ 绑定到宿主机的端口P上,最终达到一种效果:外部程序通 ...
- docker进入容器的方式
通过docker创建守护运行(在使用-d参数时)的容器时,容器启动后会进入后台.用户无法看到容器中的信息.某些时候如果需要进入容器进行操作,有多种方法,包括使用docker attach命令.dock ...
- Docker与容器快速入门
Docker之风席卷全球,但很多人觉得docker入门确实不太容易,其原因在于很多知识点上没准备好,在docker解决了什么问题.怎么解决的.用什么技术解决的都还没想清楚的时候就去探索docker组件 ...
- Docker系列之(三):Docker微容器Alpine Linux
1. 前言 使用Docker创建容器时,基础镜像通常选择Ubuntu或Centos,不管哪个镜像的大小都在100MB以上. Alpine Linux是一个面向安全的轻型的Linux发行版. Alpin ...
- docker commit容器
docker commit 容器ID 镜象REPOSITORY 镜象TAG 如docker commit 52b41c68ac7b registry.lenovows.com:5000/video-a ...
- FW Docker为容器分配指定物理网段的静态IP
官方有关于网桥和IP配置的文档地址:https://docs.docker.com/articles/networking/ 1.宿主机(系统采用ubuntu-14.04.1-server-amd64 ...
随机推荐
- 进阶Java编程(8)反射应用案例
1,反射实例化对象 经过一系列分析之后可以发现虽然获得了Class类的实例化对象但是依然觉得这个对象获取的意义不是很大,所以为了进一步的帮助大家理解反射的核心意义所在,下面将通过几个案例进行说明(都是 ...
- 经典算法,yuv与rgb互转,查表法,让你的软件飞起来
代码的运算速度取决于以下几个方面 1. 算法本身的复杂度,比如MPEG比JPEG复杂,JPEG比BMP图片的编码复杂. 2. CPU自身的速度和设计架构 3. CPU的总线带宽 4. 您自己代码的写法 ...
- 03 Go语言特性
一.基本注意事项 1.转义字符 \t 一个制表符,代表一次tab \n 换行符 \\ 转义代表 \ \" 转义代表 " \r 一个回车,从当前行的最前面开始输出,会覆盖以前的内容, ...
- bus事件总线传值
import Vue from 'vue' var bus = new Vue() export default bus 监听事件: // header组件 <template> ...
- 1 C# 将对象序列化
public static string ObjectToXml(object obj) { using (MemoryStream memoryStream = new MemoryStream() ...
- ORALCE 数据库字符串处理、常用函数
.字符串转日期: to_date(paramStr,'YYYYMMDDHH24MISS') to_date(paramStr,'yyyy-MM-DD') to_date(paramStr,'yyyy/ ...
- contos7 yum 安装golang
一.安装 [root@localhost golang]# yum install golang 安装默认目录为/usr/lib/golang/ 二.配置环境变量 echo "export ...
- Hive-ha (十三)
hive-high Avaliable hive的搭建方式有三种,分别是 1.Local/Embedded Metastore Database (Derby) 2.Remote Meta ...
- Java语言开发的,直接解压即可使用软件
Tomcat ZooKeeper ActiveMQ Mycat
- Selenium3-浏览器与驱动对照
在学selenium自动化测试时,遇到的第一个大问题便是浏览器版本.浏览器驱动版本与selenium的版本不对应,而无法驱动浏览器进行自动化操作. 收集了网上的一些技术文档,决定也整理一份相对较全面的 ...