前提:开启混杂模式
# 查看当前使用的网卡
ip route | grep default
为保证多个 MAC 地址的网络包都可以从 enp2s0 物理网卡通过,需要打开网卡的混杂模式
ip link set enp2s0 promisc on
创建虚拟网卡
docker network create -d macvlan -o parent=enp2s0 macvlan --subnet=192.168.31.0/24 --ip-range=192.168.31.0/25 --gateway=192.168.31.1 --ipv6 --subnet=2001:db8:2::/64
parent=enp2s0
enp2s0代表当前使用的网卡名字
在线子网分配
--ip-range
/25代表11111111.11111111.11111111.10000000,转换十进制是255.255.255.128。也就是这个虚拟网卡分配的IP地址是从1~127个(127的计算方法是2^7-1,7是0的个数)。25代表二进制中1的个数。
如果写作–ip-range=192.168.31.100/30,那就是从100之后最多分配3个地址(/30代表11111111.11111111.11111111.11111100,0的个数是2,2^2-1=3)
创建支持IPv6的虚拟网卡
docker network create -d macvlan -o parent=enp2s0 macvlan --subnet=192.168.31.0/24 --ip-range=192.168.31.0/25 --gateway=192.168.31.1 --ipv6 --subnet=2001:db8:2::/64
parent=enp2s0
enp2s0代表当前使用的网卡名字
查看容器网络详细信息
docker network ls
docker network inspect bridge(查看bridge模式)
docker network inspect host(查看host模式)
docker network inspect macvlan(查看macvlan模式)
关于虚拟网卡的介绍可以查看这边文章
评论区