docker02:(与docker01相同操作)
开启混杂模式
[root@sqm-docker02 ~]# ip link set ens33 promisc on
[root@sqm-docker02 ~]# ip link show ens33
//创建macvlan网络
[root@sqm-docker02 ~]# docker network create -d macvlan --subnet 172.16.100.0/24 --gateway 172.16.100.1 -o parent=ens33 mac_net1
//运行一个容器:
[root@sqm-docker02 ~]# docker run -itd --name box2 --network mac_net1 --ip 172.16.100.20 busybox(4)测试两个主机间的两个容器相互通信:

注意事项:
能ping通的原因是两个容器都是基于真实的ens33网卡的,所以宿主机上的ens33网卡必须能够相互通信。这种方式只能够ping通ip地址,是无法ping通容器名的。
实例二:macvlan跨主机多网络解决方案:
(1)首先查看主机内核的8021q模块:
[root@sqm-docker01 ~]# modinfo 8021q
##如果没有查看到该模块,需要执行以下命令进行加载:
[root@sqm-docker01 ~]# modprobe 8021q
开启路由转发:
[root@sqm-docker01 ~]# echo "net.ipv4.ip_forward = 1" > /etc/sysctl.conf
[root@sqm-docker01 ~]# sysctl -p
net.ipv4.ip_forward = 1(2)修改网络配置信息:
docker01:
[root@sqm-docker01 ~]# cd /etc/sysconfig/network-scripts/
[root@sqm-docker01 network-scripts]# ls
[root@sqm-docker01 network-scripts]# vim ifcfg-ens33
基于ens33网卡进行创建子网卡:
[root@sqm-docker01 network-scripts]# cp -p ifcfg-ens33 ifcfg-ens33.10 #网卡名称自定义
[root@sqm-docker01 network-scripts]# cp -p ifcfg-ens33 ifcfg-ens33.20-p:表示保留原有属性(权限)
//修改ens33.10网卡:
[root@sqm-docker01 network-scripts]# vim ifcfg-ens33.10
##只保留以下选项:
//修改ens33.20网卡:
[root@sqm-docker01 network-scripts]# vim ifcfg-ens33.20
配置与ens33.10相同,只需修改ip地址:










