基本上,我正在尝试设置一个 Redis-sentinel docker 实例,并希望从我的应用程序容器中进行调用。我正在运行的问题是 - redis-sentinel 容器链接到应用程序容器。
因此,最初应用程序向哨兵进程询问有关 redis 主服务器的信息。然后哨兵说它是“127.0.0.1”。但是应用程序容器假定它是容器本地的。这可以通过在哨兵进程开始时传递的announce-ip/announce-port 参数来克服。然而,问题是这样的——
redis-sentinel 容器尝试在链接建立之前启动。因此,即使在哨兵进程启动网络接口期间,链接 IP 也不可用。
我能想到的一种解决方案是忙于等待网络接口建立。因此,问题归结为“源容器如何发现其新建立的网络接口?是否有任何 docker 设置在源容器上以便它发现不同的链接?”
链接都在 docker-compose 文件中进行管理。
如果还有其他简单的解决方案,我也欢迎尝试。