docker容器跨主机互通,选择哪一种方式

使用4个服务器,每个服务器都安装有docker容器,要满足如下要求:
首先,要求各个服务器之前的容器可以互通,即容器跨主机互通。
其次,每个服务器都有两个物理网卡,使容器可以选择任意一个或两个网卡实现跨主机互通。
请问,满足以上两个要求,该选择overlay、macvlan、或第三方的解决方案呢,本人入门不久,还望麻烦指点一二,感谢感谢

可以选择 overlay 这个网络方案。它支持容器跨主机互通、支持容器网络的多网卡选择,也是 Docker 官方提供的内置网络驱动,稳定可靠。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    对于该场景,使用overlay网络更为适合。具体步骤如下:

    1. 在每个主机上创建overlay网络:
    docker network create -d overlay --subnet 10.0.9.0/24 --gateway 10.0.9.1 --attachable overlay_net
    

    其中subnet和gateway可以根据需要进行修改,--attachable表示该网络可被任意容器连接。

    1. 在每个主机上启动需要互通的容器,并将其连接到overlay网络:
    docker run --net=overlay_net --name=container1 -d image1
    docker run --net=overlay_net --name=container2 -d image2
    

    其中image1和image2分别为需要互通的容器镜像。

    1. 确保各个容器中已经安装了ping命令,用于测试互通情况。

    2. 在每个主机上分别ping测试其他主机上的容器IP地址:

    docker exec -it container1 ping container2_ip_address
    

    其中container2_ip_address为container2所使用的IP地址。

    1. 如果想要容器选择不同的网卡进行通信,可以在创建overlay网络时指定不同的子网IP和网关IP,然后在容器中进行相应配置。

    以上步骤基本可以实现跨主机容器互通。如果需要进一步优化网络性能,可以考虑使用第三方网络解决方案,比如Weave Net等。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^