用Docker部署集群(即MongoDb / ElasticSearch)并链接到Java应用程序

我需要部署一个Java微服务,与ElasticSearch或Mongodb等高可用后端进行交互。

  • 部署ElasticSearch或MongoDb等高可用后端集群然后将信息传递给dockerized microservice的惯用方法是什么?
  • 端口和容器链接似乎将应用程序总是部署在Docker中,这是一个显着的缺点吗?
  • 有没有一种惯用的方式来检索机器的IP,并将其传递给运行微服务的容器?

自从docker 1.9以来,新的惯用方法就是运行Consul这样的发现服务,以便logging任何容器并将其广告给其他容器。 没有更多的链接。

在“ Atlassian Orchestration with Docker:多主机支持win! ”中看到一个例子。
您在3节点Swarm集群上隔离不同的服务:

https://developer.atlassian.com/blog/2015/12/atlassian-docker-orchestration/arch.png

使用swarm和不同节点的想法是,您可以为每个节点分配不同的约束(以内存为单位),以便将正确的服务分配给正确的节点。