Docker:网络上的强制内部容器通信

Docker:网络上的强制内部容器通信,docker,networking,docker-compose,centos7,macvlan,Docker,Networking,Docker Compose,Centos7,Macvlan,我正在进行一个项目,该项目旨在将现有的VOIP遗留系统转换为停靠形式。现有系统由5台不同的Linux机器组成,每台机器有2个不同的网络接口——一个暴露于公共WAN,另一个是专用Lan网络。我计划创建一个docker compose文件来设置编排 网络大致如下所示: 服务器#1eth0:ip192.168.0.200/24eth1:ipx.X.X.65/27 服务器#2eth0:ip192.168.0.201/24eth1:ipx.X.X.66/27 服务器#3 Eth0:ip192.168.0.

我正在进行一个项目,该项目旨在将现有的VOIP遗留系统转换为停靠形式。现有系统由5台不同的Linux机器组成,每台机器有2个不同的网络接口——一个暴露于公共WAN,另一个是专用Lan网络。我计划创建一个docker compose文件来设置编排

网络大致如下所示:

服务器#1eth0:ip192.168.0.200/24eth1:ipx.X.X.65/27

服务器#2eth0:ip192.168.0.201/24eth1:ipx.X.X.66/27

服务器#3 Eth0:ip192.168.0.202/24eth1:ipx.X.X.87/27

服务器#4 Eth0:IP 192.168.0.203/24 Eth1:IP Y.Y.Y.240/27

服务器#5eth0:ip192.168.0.204/24eth1:ipy.Y.Y.241/27

服务器1-3是同一子网的一部分,服务器4-5也是

我正在试图找到将此网络设置转换为docker网络的最佳方法,我希望每个容器都保留其公共IP(Eth1上的那个,这意味着从容器生成的流量将保持其在原始服务器上的相同公共IP),而且能够与同一个私有网络上的其他docker容器进行通信,同时使其易于管理并尽可能减少开销


我已经使用docker compose创建了3个macvlan网络和1个网桥网络,但问题是DNS解析为每个容器提供了我在其所属的macvlan网络中提供的IP地址,例如,为网桥网络和同一macvlan网络分配了2个docker,解析彼此的容器名称将提供其MAVLAN地址,而不是网桥IP地址。我只想通过网桥网络强制所有容器之间的通信(基本上是将Macvlan网络设置为专用模式)。我怎样才能做到这一点呢?

考虑将--alias与一起使用。就像在网桥网络中为容器指定一个专用名称,并在内部通信中使用该名称一样

这与?是否有与此相关的应用程序源代码,或者这纯粹是一个关于网络配置的问题?这纯粹是一个与网络相关的问题,它在某种程度上与我之前的问题相关,但更强调docker如何处理同一容器上的两个网络。您是否考虑过将--alias与“docker network connect”一起使用?就像在网桥网络中为容器指定一个专用名称,并将该名称用于内部通信一样?@KirylZ它可以工作,我希望有一个更优雅的解决方案。我将测试这种方法,并让您知道它是否有效。此外,在第一步/最后一步尝试连接到网桥网络。。。它可能会更改默认网关。谢谢Kiryl。