本文同步发表在我的个人博客https://evine.win。
docker在一块网卡上创建多个macvlan子网,不可以进行多次创建,需要在一次创建中把多个子网同时创建好。说明及创建命令如下:
一个
subnet
对应一个gateway
,gateway
必须在subnet
的范围内,直接改为你所使用的真实的gateway
即可。这样可以不同的subnet
设置不同的gateway
,控制不同的容器走不同的线路(比如有的需要代理,有的不能代理)。--subnet=fe80::/64 --ipv6
可以打开ipv6,无需设置公网ipv6的subnet
,只要这样设置在这个macvlan网络上的容器就能自动获取到公网ipv6。--opt parent=eth0
指定本macvlan网络绑定到父级网卡eth0
上。--opt com.docker.network.bridge.name=mymacvlan
指定macvlan网络名称为mymacvlan
。最后的
mymacvlan
是docker中的网络名称。
docker network create \
--driver macvlan \
--subnet=10.0.0.0/24 --gateway "10.0.0.2" \
--subnet=10.0.1.0/24 --gateway "10.0.1.1" \
--subnet=10.0.2.0/24 --gateway "10.0.2.254" \
--subnet=fe80::/64 --ipv6 \
--opt parent=eth0 \
--opt macvlan_mode=bridge \
--opt com.docker.network.bridge.name=mymacvlan \
mymacvlan