linux虚拟化之docker虚拟化---docker中容器之间的跨主机通信2

使用MacVlan的方法使不同主机中的容器进行通信

以我自己的环境为例
docker10 : 192.173.26.10
docker11 : 192.173.26.11
基于真实的ens33网卡,生产新的虚拟网卡
//验证内核模块8021q封装 作用是:有这个模块,才能创建更多的虚拟网卡。

modinfo  8021q

linux虚拟化之docker虚拟化---docker中容器之间的跨主机通信2_第1张图片
//如果上一条命令没有信息,就运行一下以下命令:

modprobe  8021q

//修改ens33网卡的配置文件

 vim /etc/sysconfig/network-scripts/ifcfg-ens33 

linux虚拟化之docker虚拟化---docker中容器之间的跨主机通信2_第2张图片
//手动添加虚拟网卡的配置文件(运行两个)

cp  -p  ifcfg-ens33  ifcfg-ens33.11

//修改这个文件 ifcfg-ens33.11
linux虚拟化之docker虚拟化---docker中容器之间的跨主机通信2_第3张图片
注意:ip要和ens33网段,作区分(不在一个网段),保证设备名称和文件的一致性,网关个网段ip的一致性,打开vlan
//再cp一份网卡的配置文件,其名为ifcfg-ens33.22,进行修改
linux虚拟化之docker虚拟化---docker中容器之间的跨主机通信2_第4张图片
//启用创建的虚拟网卡

ifup  ifcfg-ens33.11 
ifup  ifcfg-ens33.22

//查看一下网络信息

ifconfig

linux虚拟化之docker虚拟化---docker中容器之间的跨主机通信2_第5张图片
//基于虚拟网卡ens33.11 创建一个macvlan网络

docker network create -d macvlan --subnet 172.16.11.0/24 --gateway 172.16.11.1 -o parent=ens33.11  mac_net11

//基于虚拟网卡ens33.22 创建一个macvlan网络

docker network create -d macvlan --subnet 172.16.22.0/24 --gateway 172.16.22.1 -o parent=ens33.22  mac_net22

//在另一台主机上也做两个ens33的文件(注意修改ip为不同的ip,因为是在同一局域网下,所以不能相同ip) 与docker11上的ip均不相同
linux虚拟化之docker虚拟化---docker中容器之间的跨主机通信2_第6张图片
//基于虚拟网卡ens33.11 创建一个macvlan网络

docker network create -d macvlan --subnet 172.16.11.0/24 --gateway 172.16.11.1 -o parent=ens33.11  mac_net11

//基于虚拟网卡ens33.22 创建一个macvlan网络

docker network create -d macvlan --subnet 172.16.22.0/24 --gateway 172.16.22.1 -o parent=ens33.22  mac_net22

//最后就是验证了,根据这些macvlan网络创建容器
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
然后修改一下虚拟的适配器选项,点击桥接模式
linux虚拟化之docker虚拟化---docker中容器之间的跨主机通信2_第7张图片
在同一网段的不同主机内的容器是可以相互访问的

你可能感兴趣的:(linux虚拟化之docker虚拟化---docker中容器之间的跨主机通信2)