赞
踩
转载:https://www.cnblogs.com/zhuochong/p/10070516.html
刚创建nacos容器时,忘记了添加参数 --restart=always
,当 Docker 重启时,容器未能自动启动。现在需要容器自启动。
1、docker命令修改
docker container update --restart=always 容器名字
[root@10-13-4-243 ~]# docker container update --restart=always nacos
2、修改配置文件
- [root@10-13-4-243 ~]# cd /var/lib/docker/containers/3c5f13bfd7a96e47cabf34c74a0f9749f2b014540c2b556f12aeb290e014b015/
- [root@10-13-4-243 3c5f13bfd7a96e47cabf34c74a0f9749f2b014540c2b556f12aeb290e014b015]# ls
- 3c5f13bfd7a96e47cabf34c74a0f9749f2b014540c2b556f12aeb290e014b015-json.log
- checkpoints
- config.v2.json
- hostconfig.json
- hostname
- hosts
- mounts
- resolv.conf
- resolv.conf.hash
hostconfig.json
,找到该文件中关键字 RestartPolicy
"RestartPolicy":{"Name":"no","MaximumRetryCount":0}
"RestartPolicy":{"Name":"always","MaximumRetryCount":0}
Docker提供了restart policy机制,可以在容器退出或者Docker重启时控制容器能够自启动。这种Restart policy可以保证相关容器按照正确顺序启动。虽然也可以通过进程监控的方式(如systemd)来完成这种动作,但Docker还是建议尽量避免使用进程监控的方式来 "自启动" 容器。
Docker的 Restart policy与dockerd命令的--live-restore启动标志还有区别:--live-restore标志可以在Docker升级的时候保证容器继续运行,但是网络以及用户终端输入会被中断。
restart policy在使用docker run启动容器时通过--restart标志指定,这个标志有多个value可选,不同的value有不同的行为,如下表所列:
Flag | Description |
no | 不自动重启容器. (默认value) |
on-failure | 容器发生error而退出(容器退出状态不为0)重启容器 |
unless-stopped | 在容器已经stop掉或Docker stoped/restarted的时候才重启容器 |
always | 在容器已经stop掉或Docker stoped/restarted的时候才重启容器 |
举个例子:下面的命令启动一个Redis容器,当Redis容器停止后或者Docker被重启时,Redis容器都会重启。
1 |
|
使用restart policies时需要注意如下细节:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。