Docker学习之docker重启参数--restart=always的作用
docker重启参数–restart=always的作用
-restart=always参数能够使我们在重启docker时,自动启动相关容器。
Docker容器的重启策略如下:
no,默认策略,在容器退出时不重启容器
on-failure,在容器非正常退出时(退出状态非0),才会重启容器
on-failure:3,在容器非正常退出时重启容器,最多重启3次
always,在容器退出时总是重启容器
unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
参考:Docker容器的重启策略及docker run的–restart选项详解_易生一世的博客-CSDN博客_restart: unless-stopped
首先我们先看下正常启动容器不加参数的情况重启docker会出现什么情况
一、启动时候添加参数
1、不加–restart=always参数启动容器
[root@localhost /]# docker run -d tomcat
1a7a3b5112fd310dc70903df479203a81d7d64f7c19ea0aca8fff8ece10e04a4
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1a7a3b5112fd tomcat "catalina.sh run" 29 seconds ago Up 28 seconds 8080/tcp friendly_clarke
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1a7a3b5112fd tomcat "catalina.sh run" 32 seconds ago Up 31 seconds 8080/tcp friendly_clarke
2、重启docker,查看状态,可以看到,重启docker之后,容器也停止了运行,这在生产环境上是非常危险的。
[root@localhost /]# systemctl restart docker
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1a7a3b5112fd tomcat "catalina.sh run" About a minute ago Exited (143) 5 seconds ago friendly_clarke
[root@localhost /]#
3、下面我们使用-restart=always参数启动容器
[root@localhost /]# docker run -d --restart always tomcat
c5557254c6d90b1ba8f9a93ff66e6a28f172e92a56cf945af533327f38152fbc
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c5557254c6d9 tomcat "catalina.sh run" 4 seconds ago Up 3 seconds 8080/tcp fervent_goldstine
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c5557254c6d9 tomcat "catalina.sh run" 8 seconds ago Up 7 seconds 8080/tcp fervent_goldstine
1a7a3b5112fd tomcat "catalina.sh run" 2 minutes ago Exited (143) About a minute ago friendly_clarke
[root@localhost /]# systemctl restart docker
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c5557254c6d9 tomcat "catalina.sh run" 18 seconds ago Up 3 seconds 8080/tcp fervent_goldstine
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c5557254c6d9 tomcat "catalina.sh run" 26 seconds ago Up 10 seconds 8080/tcp fervent_goldstine
1a7a3b5112fd tomcat "catalina.sh run" 3 minutes ago Exited (143) About a minute ago friendly_clarke
[root@localhost /]#
二、命令修改
在启动时如果没有添加这个参数怎么办呢,比如1a7a3b5112fd这个容器在启动的时候是没有添加–restart=always参数的,针对这种情况我们可以使用命令进行修改。docker container update --restart=always 容器名字
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c5557254c6d9 tomcat "catalina.sh run" 26 seconds ago Up 10 seconds 8080/tcp fervent_goldstine
1a7a3b5112fd tomcat "catalina.sh run" 3 minutes ago Exited (143) About a minute ago friendly_clarke
[root@localhost /]# docker container update --restart=always 1a7a3b5112fd
1a7a3b5112fd
[root@localhost /]# systemctl restart docker
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c5557254c6d9 tomcat "catalina.sh run" 7 minutes ago Up 3 seconds 8080/tcp fervent_goldstine
1a7a3b5112fd tomcat "catalina.sh run" 9 minutes ago Up 3 seconds 8080/tcp friendly_clarke
[root@localhost /]#
三、修改配置文件
除了上面两种方式之后还可以通过修改容器的配置文件来修尽管这个参数,首先停止容器,不然无法修改配置文件
配置默认文件路径为:/var/lib/docker/containers/容器ID
在该目录下找到一个文件 hostconfig.json ,找到该文件中关键字 RestartPolicy
修改前配置:“RestartPolicy”:{“Name”:“no”,“MaximumRetryCount”:0}
修改后配置:“RestartPolicy”:{“Name”:“always”,“MaximumRetryCount”:0}
最后启动容器。
[root@localhost /]# docker container update --restart=no 1a7a3b5112fd
1a7a3b5112fd
[root@localhost /]# systemctl restart docker
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c5557254c6d9 tomcat "catalina.sh run" 11 minutes ago Up 2 seconds 8080/tcp fervent_goldstine
1a7a3b5112fd tomcat "catalina.sh run" 14 minutes ago Exited (143) 3 seconds ago friendly_clarke
[root@localhost ~]# cd /docker/containers/1a7a3b5112fd310dc70903df479203a81d7d64f7c19ea0aca8fff8ece10e04a4/
[root@localhost 1a7a3b5112fd310dc70903df479203a81d7d64f7c19ea0aca8fff8ece10e04a4]# ls
1a7a3b5112fd310dc70903df479203a81d7d64f7c19ea0aca8fff8ece10e04a4-json.log config.v2.json hostname mounts resolv.conf.hash
checkpoints hostconfig.json hosts resolv.conf
[root@localhost 1a7a3b5112fd310dc70903df479203a81d7d64f7c19ea0aca8fff8ece10e04a4]# more hostconfig.json
{"Binds":null,"ContainerIDFile":"","LogConfig":{"Type":"json-file","Config":{}},"NetworkMode":"default","PortBindings":{},"RestartPolicy":{"Name":"no","MaximumR
etryCount":0},"AutoRemove":false,"VolumeDriver":"","VolumesFrom":null,"CapAdd":null,"CapDrop":null,"Capabilities":null,"Dns":[],"DnsOptions":[],"DnsSearch":[],"Extr
aHosts":null,"GroupAdd":null,"IpcMode":"private","Cgroup":"","Links":null,"OomScoreAdj":0,"PidMode":"","Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":f
alse,"SecurityOpt":null,"UTSMode":"","UsernsMode":"","ShmSize":67108864,"Runtime":"runc","ConsoleSize":[0,0],"Isolation":"","CpuShares":0,"Memory":0,"NanoCpus":0,"C
groupParent":"","BlkioWeight":0,"BlkioWeightDevice":[],"BlkioDeviceReadBps":null,"BlkioDeviceWriteBps":null,"BlkioDeviceReadIOps":null,"BlkioDeviceWriteIOps":null,"
CpuPeriod":0,"CpuQuota":0,"CpuRealtimePeriod":0,"CpuRealtimeRuntime":0,"CpusetCpus":"","CpusetMems":"","Devices":[],"DeviceCgroupRules":null,"DeviceRequests":null,"
KernelMemory":0,"KernelMemoryTCP":0,"MemoryReservation":0,"MemorySwap":0,"MemorySwappiness":null,"OomKillDisable":false,"PidsLimit":null,"Ulimits":null,"CpuCount":0
,"CpuPercent":0,"IOMaximumIOps":0,"IOMaximumBandwidth":0,"MaskedPaths":["/proc/asound","/proc/acpi","/proc/kcore","/proc/keys","/proc/latency_stats","/proc/timer_li
st","/proc/timer_stats","/proc/sched_debug","/proc/scsi","/sys/firmware"],"ReadonlyPaths":["/proc/bus","/proc/fs","/proc/irq","/proc/sys","/proc/sysrq-trigger"]}
[root@localhost 1a7a3b5112fd310dc70903df479203a81d7d64f7c19ea0aca8fff8ece10e04a4]# sed -i 's/"RestartPolicy":{"Name":"no"/"RestartPolicy":{"Name":"always"/g' hostconfig.json
[root@localhost 1a7a3b5112fd310dc70903df479203a81d7d64f7c19ea0aca8fff8ece10e04a4]# more hostconfig.json
{"Binds":null,"ContainerIDFile":"","LogConfig":{"Type":"json-file","Config":{}},"NetworkMode":"default","PortBindings":{},"RestartPolicy":{"Name":"always","MaximumR
etryCount":0},"AutoRemove":false,"VolumeDriver":"","VolumesFrom":null,"CapAdd":null,"CapDrop":null,"Capabilities":null,"Dns":[],"DnsOptions":[],"DnsSearch":[],"Extr
aHosts":null,"GroupAdd":null,"IpcMode":"private","Cgroup":"","Links":null,"OomScoreAdj":0,"PidMode":"","Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":f
alse,"SecurityOpt":null,"UTSMode":"","UsernsMode":"","ShmSize":67108864,"Runtime":"runc","ConsoleSize":[0,0],"Isolation":"","CpuShares":0,"Memory":0,"NanoCpus":0,"C
groupParent":"","BlkioWeight":0,"BlkioWeightDevice":[],"BlkioDeviceReadBps":null,"BlkioDeviceWriteBps":null,"BlkioDeviceReadIOps":null,"BlkioDeviceWriteIOps":null,"
CpuPeriod":0,"CpuQuota":0,"CpuRealtimePeriod":0,"CpuRealtimeRuntime":0,"CpusetCpus":"","CpusetMems":"","Devices":[],"DeviceCgroupRules":null,"DeviceRequests":null,"
KernelMemory":0,"KernelMemoryTCP":0,"MemoryReservation":0,"MemorySwap":0,"MemorySwappiness":null,"OomKillDisable":false,"PidsLimit":null,"Ulimits":null,"CpuCount":0
,"CpuPercent":0,"IOMaximumIOps":0,"IOMaximumBandwidth":0,"MaskedPaths":["/proc/asound","/proc/acpi","/proc/kcore","/proc/keys","/proc/latency_stats","/proc/timer_li
st","/proc/timer_stats","/proc/sched_debug","/proc/scsi","/sys/firmware"],"ReadonlyPaths":["/proc/bus","/proc/fs","/proc/irq","/proc/sys","/proc/sysrq-trigger"]}
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c5557254c6d9 tomcat "catalina.sh run" 14 minutes ago Up 2 seconds 8080/tcp fervent_goldstine
1a7a3b5112fd tomcat "catalina.sh run" 17 minutes ago Up 2 seconds 8080/tcp friendly_clarke
参考https://blog.csdn.net/bjywxc/article/details/103530262
Docker学习之docker重启参数--restart=always的作用相关推荐
- docker重启参数--restart=always的作用
--restart=always参数能够使我们在重启docker时,自动启动相关容器. Docker容器的重启策略如下: no,默认策略,在容器退出时不重启容器 on-failure,在容器非正常退出 ...
- Docker学习(2)-Docker基础1
Docker学习(1)-Docker简介 1.2 Docker安装及基础命令介绍 https://www.docker.com/#Docker官网 Docker 运行系统 OS 版本选择: Docke ...
- Docker学习1——Docker入门
Docker学习1--Docker入门 参考资料 1.Docker简介 2.尚硅谷2022版Docker实战教程(docker教程天花板) 1.1 Docker简介 1.1.1 Docker引入 假定 ...
- Docker学习2——Docker高级
Docker学习2--Docker高级 2.1 Dockerfile解析 2.1.1 Dockfile是什么 Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参 ...
- Docker学习(3)-Docker镜像构建和使用
Docker学习(1)-Docker简介 Docker学习(2)-Docker基础1 Docker 镜像与制作 Docker 镜像内是否包含内核(bootfs)? 首先,从镜像的体积大小来说,一个比较 ...
- 狂神说--docker学习笔记-docker安装,常用命令,以及使用
狂神说bilibili视频地址:https://www.bilibili.com/video/BV1og4y1q7M4?p=1 1. Docker概述 1.1 Docker为什么出现? 大家经常做一款 ...
- Docker学习(四)-----Docker容器常用命令
七.Docker容器 容器是Docker核心概念 简单的说,容器是独立运行的一个或一组应用,以及它们的运行环境 对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和运行 ...
- Docker学习(一)-----Docker简介与安装
一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...
- Docker学习笔记 — Docker私有仓库搭建
2019独角兽企业重金招聘Python工程师标准>>> 和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库. 使用私有仓 ...
最新文章
- 闭包函数 装饰器 迭代器
- VTK:小部件之ImplicitPlaneWidget2
- 小米手机能用上鸿蒙吗,鸿蒙系统小米手机能用吗?鸿蒙系统支持第三方手机!
- 调用支付宝PHP接口API实现在线即时支付功能(UTF-8编码)
- 被边缘化的“卓越亚马逊”
- AWS public key的邮件验证方式
- linux awk 内置变量使用介绍
- sql 查询数据库索引重建_不良的数据库索引– SQL查询性能的杀手–建议
- vs.net 2005中引用webservice的简单方法
- 腾讯面试官这样问我二叉树,我刚好都会 | 原力计划
- UVA10004 Bicoloring【DFS】
- json 生成 json字符串
- 在mac11以上系统可用的cocosbuilder3.0,12也可用。
- PostgreSQL查询优化器详解(逻辑优化篇)
- dtcms分页含多个参数,多个参数分页
- 【HTML/CSS/计算机网络】75道高频面试题【看这一篇就够啦!】
- android移动日记代码,Android开源项目-小熊日记源码
- 图片base64转存本地url
- InStr Split UBound 几个vb函数
- Apache Pulsar和Apache BookKeeper