docker run 中设置
在docker run通过 --restart 设置守护机制:
no: 不自动重新启动容器(默认)
no-failure:
容器发生error而退出(容器退出状态不为0)重启容器
unless-stopped: 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always: 如果容器停止,总是重新启动容器。如果手动kill容器,则无法自动重启。
举例: 安装Portainer(Docker的图形化管理工具),并设置自启动
docker run --restart=always -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
docker update 追加命令
运行中的容器,当时没有指定restart 可以通过update命令追加。
举例: web为正在运行的容器
docker update --restart=always web
在compose文件中设置
version: "3"
services:
redis:
image: redis:alpine
deploy:
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
配置容器的启动,代替以前的关键字 restart 。
- condition:值可以为 none 、on-failure 以及 any(默认)
- delay: 尝试重启的等待时间,默认为 0
- max_attempts:在放弃之前尝试重新启动容器次数(默认:从不放弃)。如果重新启动在配置中没有成功 window,则此尝试不计入配置max_attempts 值。例如,如果 max_attempts 值为 2,并且第一次尝试重新启动失败,则可能会尝试重新启动两次以上。
- windows:在决定重新启动是否成功之前的等时间,指定为持续时间(默认值:立即决定)。