使用MacVlan的方法使不同主机中的容器进行通信
以我自己的环境为例
docker10 : 192.173.26.10
docker11 : 192.173.26.11
基于真实的ens33网卡,生产新的虚拟网卡
//验证内核模块8021q封装 作用是:有这个模块,才能创建更多的虚拟网卡。
modinfo 8021q
//如果上一条命令没有信息,就运行一下以下命令:
modprobe 8021q
//修改ens33网卡的配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
//手动添加虚拟网卡的配置文件(运行两个)
cp -p ifcfg-ens33 ifcfg-ens33.11
//修改这个文件 ifcfg-ens33.11
注意:ip要和ens33网段,作区分(不在一个网段),保证设备名称和文件的一致性,网关个网段ip的一致性,打开vlan
//再cp一份网卡的配置文件,其名为ifcfg-ens33.22,进行修改
//启用创建的虚拟网卡
ifup ifcfg-ens33.11
ifup ifcfg-ens33.22
//查看一下网络信息
ifconfig
//基于虚拟网卡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均不相同
//基于虚拟网卡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网络创建容器
然后修改一下虚拟的适配器选项,点击桥接模式
在同一网段的不同主机内的容器是可以相互访问的