我想防止多个容器一起打开。 即假设我有一项服务,并且我想打开它的 5 个副本。
那么他们应该这样做:
容器 1 启动 ==> 容器 1 运行且健康 ==> 容器 2 启动 ==> 容器 2 运行且健康 ==> 容器 3 启动 ==> 容器 3 运行且健康 ==> 容器 4 启动 == > 容器 4 运行且健康 ==> 容器 5 启动 ==> 容器 5 运行且健康。
我检查了 HEALTHCHECK,但我不知道它在这种情况下是否对我有帮助
谢谢
最佳答案
您可以添加另一个应用程序容器来充当协调器。
与此有很大关系question .
我的想法是拥有一个共享的 Redis,其中有一个共享锁。因此,每个新容器开始查询共享 Redis 中的锁,当获取锁时,容器完成启动,然后释放锁。
https://redis.io/topics/distlock
Distributed locks are a very useful primitive in many environments where different processes must operate with shared resources in a mutually exclusive way.
关于docker - 如何防止 Docker 容器在同一服务中的另一个容器尝试打开时打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44047346/