docker容器自动重启配置(docker容器定时重启)
在开发过程中(特别是测试环境),突然发现docker部署的项目不能使用了,然后去服务器看下,发现docker服务没有启动,或者docker服务启动了,里面的容器没有启动,这里讲下服务器重启后,docker服务自启动,然后docker容器启动。
首先,安装好docker后,设置docker开机自启动。
# 设置服务开机自启
systemctl enable docker
# 关闭开机自启
# systemctl disable docker
# 查看是否开机自启
systemctl is-enabled docker
其次,安装docker容器,这里面以nginx为例
docker run -itd --name test-nginx -p 8888:80 nginx
这种方式安装后,如果服务器重启后,这个nginx容器不会重启,需要手动重启,此时有两种方式处理。
第一种方式,删除这个容器,重新run,添加 --restart always(always策略,最后附上集中策略)
docker run -itd --name test-nginx -p 8888:80 --restart always nginx
这种方式必须在第一次运行容器的时候创建好,不然后面还得删除容器再运行,下面介绍第二种方式不需要删除容器,给容器添加重启策略。
docker update --restart=always? test-nginx
这样就设置好了。
最后,这些设置有没有生效怎么查看呢,可以通过docker inspect查看RestartPolicy
docker inspect test-nginx
附:docker几种重启策略
no:在容器退出时不重启容器(默认)
on-failure:在容器非正常退出时(退出状态非0),才会重启容器
on-failure:3:在容器非正常退出时重启容器,最多重启3次
unless-stopped:在容器退出时总是重启容器,手动停止除外
always:容器只要停止了,都会自动重启