Docker - 限制同一覆盖网络上的容器之间的通信访问

Docker - 限制同一覆盖网络上的容器之间的通信访问

我们想在容器中使用带有 Elasticsearch 的 docker swarm。即在不同的 Docker 主机中以 swarm 形式运行的多个 Elasticsearch 实例。

但是,我们想使用大型子网,然后限制每个容器之间的访问。这可能吗?

例如:

Host 1:                                        Host 2:
   192.168.1.10                                192.168.1.11
 - Elasticsearch-node1<----------------------->Elasticsearch-node2
   192.168.1.12                                192.168.1.13
 - Elasticsearch-node3<----------------------->Elasticsearch-node4

在上面的例子中,所有容器都使用 192.168.1.0/24 网络,但我们希望限制访问,以便节点 1 只能与节点 2 通信,而不能与节点 3 或节点 4 通信。我们如何实现这一点?

答案1

您可以使用以下方法实现同一覆盖网络上服务之间的分离Consul 连接,但这会增加系统中活动部件的数量。

不能将服务放入不同的覆盖网络的原因是什么?

相关内容