Keycloak docker容器无法发现彼此

问题描述 投票:0回答:1

我有两个在容器上运行的keycloak实例,每个实例都运行在一个节点上。节点是我公司网络内的裸机节点。

keycloak使用TCPPING作为发现协议。

由于这两个容器在不同的节点上运行,并且每个实例都在docker默认网络中运行,因此它们无法找到彼此。

我说docker默认网络因为我没有为这两个容器指定特殊网络。

任何想法如何让这个建筑设计中的两个实例发现彼此!

而我正在考虑将docker swarm作为解决方案。

docker docker-swarm keycloak docker-container service-discovery
1个回答
0
投票

假设这两个节点在同一网络上并且能够相互连接,您可以使用docker host networking让两个容器相互发现

它会像docker run --net=host一样容易

Docker主机网络使容器使用主机节点的网络,因此将由主机节点使用的DHCP服务器分配IP地址,并且出于所有实际目的,看起来像该网络中的另一个主机。

这允许两个容器使用TCPPING发现彼此

Docker swarm还可以启用此功能.Docker swarm基本上抽象了多个主机节点,这样您就可以在它们上面使用容器,就像在单个主机上运行docker一样。但这将需要docker-machine和全新的设置。

© www.soinside.com 2019 - 2024. All rights reserved.