docker跨主机容器通信

我在用docker搭建跨主机hadoop-zookeeper高可用集群,目前用的macvlan,容器与容器之间通讯没问题,
问题:不清楚什么原因容器端口映射不出来,容器与宿主机之间不通,但是跨主机容器之间是没问题的,现在想的是用什么网络模式可以实现跨主机hadoop高可用容器集群搭建?

docker swam 集群模式

对于跨主机的容器通信,常见的网络模式有两种:

  1. Overlay网络模式:Overlay网络是一种软件定义的网络,可以将多个主机上的Docker容器连接在一起。在这种网络模式下,每个容器都可以看作是在同一个虚拟网络中,它们可以通过虚拟网络来通信。Overlay网络需要一个基础设施来管理网络和路由,Docker Swarm是一个常见的选择。
  2. Host网络模式:Host网络模式允许容器直接使用宿主机的网络命名空间,从而实现了和宿主机相同的网络访问能力。在这种网络模式下,容器之间可以直接使用宿主机的IP地址进行通信。由于容器使用的是宿主机的网络,所以它们之间的网络通信不会受到Docker网络模型的限制。

在你的情况下,如果想要实现跨主机的Hadoop高可用容器集群,可以考虑使用Overlay网络模式。你需要使用一个Overlay网络来连接不同主机上的Docker容器,然后使用这个网络来实现容器之间的通信。在这个网络中,每个容器都有一个唯一的IP地址,可以通过这个IP地址来进行通信。
注意,使用Overlay网络需要一定的配置和管理,需要确保Overlay网络能够正常工作。另外,由于Overlay网络需要在不同主机之间建立虚拟网络,可能会增加一定的网络延迟和开销,需要权衡网络性能和可靠性的需求。