怎样使用Docker举行容器的故障恢复和自动重启
Docker作为一种基于容器手艺的轻量级虚拟化平台,已经被普遍应用于种种场景中。在生产情形中,容器的高可用性和故障自动恢复是至关主要的。本文将先容怎样使用Docker举行容器的故障恢复和自动重启,包括详细的代码示例。
一、容器自动重启的设置
在Docker中,通过在运行容器时使用–restart选项可以启用容器的自动重启功效。常见的选项有:
no:不自动重启。默认选项;
always:总是自动重启;
on-failure:只有在容器由于非0状态退出时才自动重启;
unless-stopped:除非手动阻止,不然总是自动重启。
下面是通过使用–restart选项来启用容器自动重启功效的示例:
点击下载“嗨名堂数据恢复巨匠”;
docker run -d –restart always nginx
在这个示例中,我们启动了一个名为nginx的Docker容器,并通过–restart选项将容器设置为总是自动重启。
需要注重的是,–restart选项只在容器由于故障而退出时才会生效。若是容器被手动阻止,那么它不会自动重启。若是要在容器被手动阻止后仍然要启用自动重启功效,可以使用unless-stopped选项。
二、容器故障恢复的设置
在Docker中,容器故障恢复通常是指使用Docker Swarm等集群治理工具自动重新调理容器来包管效劳的可用性。下面是一个示例,演示怎样在Docker Swarm中设置自动故障恢复:
建设一个Docker Swarm集群:
docker swarm init
在集群中建设一个效劳:
docker service create –name nginx –replicas 3 nginx
在这个示例中,我们建设了一个名为nginx的效劳,并将其副本数目设置为3个。
在效劳中启用故障恢复功效:
docker service update –update-delay 10s –update-parallelism 2 –update-failure-action restart nginx
这里的–update-delay选项指定了更新操作之间的延迟时间;–update-parallelism选项指定了每次更新的并发实例数;–update-failure-action选项指定了更新失败时接纳的操作,这里我们将其设置为重启容器。
需要注重的是,故障恢复功效只有在使用Docker Swarm等集群治理工具时才华生效。若是直接使用docker run下令来启动容器,那么我们只能通过–restart选项来实现容器的自动重启。
三、容器故障恢复和自动重启的代码示例
下面是一个完整的代码示例,演示怎样通过使用–restart选项和Docker Swarm等集群治理工具来实现容器故障恢复和自动重启的功效:
建设一个名为docker-demo的Docker Swarm集群:
docker swarm init –advertise-addr 127.0.0.1
在集群中建设一个名为nginx的效劳,并将其副本数目设置为3个:
docker service create –name nginx –replicas 3 nginx
在效劳中启用故障恢复功效:
docker service update –update-delay 10s –update-parallelism 2 –update-failure-action restart nginx
期待一段时间后,手动阻止一个容器:
docker container stop
期待一段时间后,审查容器是否被自动重启:
docker container ls
若是容器被自动重启了,那么它的状态应该是running。
需要注重的是,容器故障恢复和自动重启的详细实现方法各不相同,差别的场景需要接纳差别的要领来实现。以上示例仅供参考,详细实现时需要凭证现真相形举行调解。
总结
容器故障恢复和自动重启是包管Docker容器高可用性的主要手段。通过准确设置Docker的自动重启和故障恢复功效,可以有用地镌汰由于容器故障而导致的效劳中止时间。本文先容了怎样使用–restart选项和Docker Swarm等集群治理工具来实现容器的故障恢复和自动重启功效,并提供了详细的代码示例。希望本文能够对各人在使用Docker时有所资助。
以上就是怎样使用Docker举行容器的故障恢复和自动重启的详细内容,更多请关注本网内其它相关文章!