让 Docker 自动重启实例

今天发现运行于 Docker 环境中的 Supg 异常退出,Supg 主要用于服务监控,结果监控的监控出现异常,则所有的监控都跪了

Docker 支持自动重启容器,添加--restart=always,无论容器退出代码是什么,docker 都会自动重启容器

docker run --restart=always  -d --name myunbuntu ubuntu /bin/bash -c "l am a docker"

限制重启次数:--restart=on-failure:5 , 当容器退出代码不为0时,最多重启5次

而我们现在的容器,因为在之前run的时候,没有添加--restart=always,如果不重新新建容器的话,可以使用 centos 自带的服务管理器来实现进程守护和重启

vim /etc/systemd/system/docker-spug.service

[Unit]
Description=spug container
Requires=docker.service
After=docker.service

[Service]
Restart=always
ExecStart=/usr/bin/docker start -a spug
ExecStop=/usr/bin/docker stop -t 2 spug

[Install]
WantedBy=default.target

然后添加服务并启动

systemctl enable docker-spug
systemctl start docker-spug