【问题标题】:Docker: Converting an existing legacy system to Dockerized form while maintaining original network schemeDocker:将现有遗留系统转换为 Dockerized 形式,同时保持原始网络方案
【发布时间】:2021-01-29 02:45:00
【问题描述】:

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

网络大致是这样的:

服务器 #1 Eth0:IP 192.168.0.200/24 Eth1:IP X.X.X.65/27

服务器 #2 Eth0:IP 192.168.0.201/24 Eth1:IP X.X.X.66/27

服务器 #3 Eth0:IP 192.168.0.202/24 Eth1:IP X.X.X.87/27

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

服务器 #5 Eth0:IP 192.168.0.204/24 Eth1:IP Y.Y.Y.241/27

服务器 1-3 属于同一子网,服务器 4-5 也是​​。

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

是否可以在 Bridge 网络之间混合并将每个 docker 容器连接到它,同时为每个 docker 容器提供一个 Macvlan 网络,该网络将绑定到主机级别的不同网络接口?

我能否只为主机创建 2 个网络接口,每个用于不同的子网,同时在它们上维护不同的 IP 地址(一个网络接口由 2 个 IP 组成,另一个由 3 个 IP 组成,每个接口都有对应的 Macvlan docker 网络)?

有没有更好的方法来完成这项工作?

编辑

我使用 nmtui 命令创建了一个具有多个 IP 地址的 IPv4 接口,我想将我的 3 个容器连接到这个网络接口,同时为每个容器提供不同的公共 IP。 根据下面给出的屏幕截图,创建一个 Macvlan 网络并为每个容器分配它自己的 IPv4 地址是否足够?在线阅读它并没有为我提供明确的答案,但 Docker 引擎似乎很可能会忽略此设置并为每个容器使用定义的主 IP。 本质上,我希望每个容器都能从它自己的主机 IP 接收流量,并从同一个 IP 传送流量。

services:
  kamin:
    networks:
      kamin:
        priority: 1
        ipv4_address: "69.31.245.134"
networks:
  kamin:
    driver: macvlan
    driver_opts:
      parent: enp0s25
    ipam:
      config:
        - subnet: 69.30.245.130/29
          gateway: 69.31.245.129

【问题讨论】:

    标签: docker networking docker-compose centos voip


    【解决方案1】:

    我能够使用主机级别的 3 个网络接口和 docker 级别的 1 个自定义网桥和 2 个 ipvlan 网络使其工作。

    【讨论】:

    • 很好,您能多分享一下您是如何实现这一目标的吗?
    • 呼应@PierreB。这里。是的,请 - 你能分享你的配置吗?
    猜你喜欢
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多