关于macvlan的理解

首先,从网上我们可以看到,macvlan技术就是在物理网卡下,添加另一张虚拟网卡,其实就是在物理网卡下添加了一个条件分支。我们可以认为报文从物理网卡进入之后,会做一个switch判断,如果该报文mac属于macvlan,则直接发往macvlan后面的网络,否则就发往原host的网络。这里简单的做个试验就知道了。
image.png

Docker 创建一个macvlan 使得容器与外部硬件网络直接交互

具体作用为,容器直接与外部硬件网络接触, 满足容器程序所需要的 UPNP 网络穿透等特殊网络需求

  1. docker network create -d macvlan --subnet=192.168.2.0/24 --gateway=192.168.2.254 -o parent=eth0 -o macvlan_mode=bridge lwm_net
参数 示例 备注
—subnet 192.168.2.0/24 子网掩码
—gateway 192.168.2.254 路由器网关
parent eth0 物理网卡名称

参考文档

Docker MACVLAN 官方 https://docs.docker.com/network/network-tutorial-macvlan/