Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker swarm模式下的高可用性_Docker_Docker Swarm - Fatal编程技术网

docker swarm模式下的高可用性

docker swarm模式下的高可用性,docker,docker-swarm,Docker,Docker Swarm,我在使用docker swarm模式时遇到一些问题 我想在swarm模式下实现高可用性。 我想我可以通过swarm的滚动更新做到这一点 像这样的 docker service update --env-add test=test --update-parallelism 1 --update-delay 10s 6bwm30rfabq4 然而,有一个问题。 我的docker图像有入口点。因此,在服务(我指的是docker容器)真正启动之前有一点延迟。但docker服务只是认为服务已经在运行,因

我在使用docker swarm模式时遇到一些问题

我想在swarm模式下实现高可用性。 我想我可以通过swarm的滚动更新做到这一点

像这样的

docker service update --env-add test=test --update-parallelism 1 --update-delay 10s 6bwm30rfabq4
然而,有一个问题。 我的docker图像有入口点。因此,在服务(我指的是docker容器)真正启动之前有一点延迟。但docker服务只是认为服务已经在运行,因为容器的状态是“启动”。甚至服务也在entrypoint上做一些工作。因此,当我尝试连接服务时,出现了一些容器返回错误

例如,如果我创建名为“test”的docker服务,并使用端口8080扩展到4。我可以在网络浏览器上访问测试:8080。我尝试使用
--updateparallelism 1--updatedelay10s
选项滚动更新。之后,我尝试再次连接该服务。。一个容器返回错误。。因为Docker服务认为容器已经运行了..甚至因为entrypoint,容器仍然没有运行。10秒后,另一个容器返回错误。。因为更新已经启动,docker服务也认为容器已经启动

所以。。有解决这个问题的办法吗? 我是否应该为断开与错误容器的连接而进行一些nginx设置并重新连接另一个容器?

Dockerfile命令适用于此用例。您可以指定Docker应如何检查容器是否可用,以及它在更新过程中的使用情况,以及在Swarm中检查服务级别


这里有一篇关于这方面的好文章:。

您是否尝试过将
--updatedelay
增加到一个更大的值?这正是我想要的!