Docker跨主机通信:桥接方式和路由方式

本文介绍了一种通过直接路由方式实现Docker容器跨主机通信的方法。该方法通过在各主机中添加静态路由,并确保每台主机上的Docker容器位于独立的二层网络中,从而实现容器间的通信。为了避免IP地址冲突,不同主机被分配了不同的IP子网。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、直接路由  

  通过在主机中添加静态路由来实现跨主机通信。如果有两台主机host1和host2,两主机上的docker容器是两个独立的二层网络,将con1发往con2的数据流先转发到主机host2上,再由host2转发到其上的docker容器中,反之亦然。

  由于使用容器的IP进行路由,就需要避免不同主机上的docker容器使用相同冲突的IP,所有应该为不同的主机分配不同的IP子网。

 

#主机A上:192.168.187.143,主机B:192.168.187.144
#S1:添加网卡docker0,我们这里为了区别docker默认的网卡docker0,使用其他名字br0
brctl addbr br0

#S2:配置网卡,添加路由
ifconfig br0 172.17.1.1/24 up
ip route add 172.17.2.0/24 via 192.168.187.144  #主机B的IP地址

#S3:启动docker服务
service docker stop
docker daemon -b=br0 

#S4:启动一个容器
docker run -it ubuntu:14.04 bash

#S5:进入容器,其IP地址应该为172.17.1.2

#主机B上:192.168.187.144
#S1:添加网卡docker0,我们这里为了区别docker默认的网卡docker0,使用其他名字br0
brctl addbr br0

#S2:配置网卡,添加路由
ifconfig br0 172.17.2.1/24 up
ip route add 172.17.1.0/24 via 192.168.187.143  #主机A的IP地址

#S3:启动docker服务
service docker stop
docker daemon -b=br0 

#S4:启动一个容器
docker run -it ubuntu:14.04 bash

#S5:进入容器,其IP地址应该为172.17.2.2
ping 172.17.1.2 #成功通信

 

转载于:https://www.cnblogs.com/1994ghj/p/5020600.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值