Redis sentinel Docker设置

Redis sentinel Docker设置,docker,docker-compose,redis-sentinel,Docker,Docker Compose,Redis Sentinel,基本上,我正在尝试设置一个Redis sentinel docker实例,并希望从我的应用程序容器中进行调用。我现在面临的问题是- redis sentinel容器链接到应用程序容器 因此,最初应用程序会询问sentinel进程有关redis master的信息。哨兵说它是127.0.0.1。但应用程序容器假定它是容器的本地。这可以通过在sentinel进程开始时传递的通告ip/通告端口参数来克服。然而,问题是这样的- redis sentinel容器尝试在建立链接之前启动。因此,即使在sent

基本上,我正在尝试设置一个Redis sentinel docker实例,并希望从我的应用程序容器中进行调用。我现在面临的问题是- redis sentinel容器链接到应用程序容器

因此,最初应用程序会询问sentinel进程有关redis master的信息。哨兵说它是127.0.0.1。但应用程序容器假定它是容器的本地。这可以通过在sentinel进程开始时传递的通告ip/通告端口参数来克服。然而,问题是这样的-

redis sentinel容器尝试在建立链接之前启动。因此,即使在sentinel进程启动网络接口期间,链路IP也不可用

我能想到的一个解决方案是忙着等待网络接口建立。因此,问题可以归结为源容器如何发现其新建立的网络接口?docker在源容器上设置了什么来发现不同的链接吗

链接全部在docker compose文件中管理


如果还有其他简单的解决方案,欢迎我也尝试一下。

因此,对我有效的解决方案就是读取源容器上的/etc/hosts文件。我忙着等待链接建立,然后使用该网络接口IP启动sentinel进程。这只是权宜之计,不可扩展。Redis sentinel仍然没有准备好可停靠格式的生产,如本文所确认。所以我决定在物理主机上安装Redis/sentinel。

不需要定制sentinel映像,也不需要干扰网络。使用、和图像查看我的项目。Docker编写文件为。 我的代码根据Docker Compose容器名称自动检测哨兵