Keycloak泊坞窗容器无法彼此发现

时间:2019-02-24 19:16:53

标签: docker docker-swarm keycloak docker-container service-discovery

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

keycloak使用TCPPING作为发现协议。

由于这两个容器在不同的节点上运行,并且每个实例都固定在docker default网络内部,所以它们无法相互找到。

我说docker default network是因为我没有为这两个容器指定特殊网络。

任何想法都可以使该建筑设计中的两个实例相互发现!

我当时正在考虑使用docker swarm作为解决方案。

1 个答案:

答案 0 :(得分:0)

假设两个节点位于同一网络上并且能够相互连接,则可以使用docker host networking

来使两个容器相互发现。

就像docker run --net=host

Docker主机网络使容器可以使用主机节点的网络,因此,主机节点使用的DHCP服务器将为其分配IP地址,并且从所有实际目的来看,都将看起来像该网络中的另一台主机。 / p>

这允许两个容器使用TCPPING相互发现

Docker swarm也将启用此功能。Docker swarm基本上抽象了多个主机节点,因此您可以像在单个主机上运行docker一样在其上进行容器化。但这将需要docker-machine和全新的设置。