首先创建docker网络,我这用的是macvlan网络
docker network create -d macvlan --subnet=192.168.110.0/24 --gateway=192.168.110.1 --ip-range=192.168.110.28/30 -o parent=eth0 my_network
指定ip-range指定ip范围,上方参数的意思是 从192.168.110.28 到 192.168.110.31
为什么是28-31,我个人理解如下(应该是对的)
IP地址4段,最大值255,255的二进制是1111 1111。即8bit,4个数字总长度就是32bit, /30意思是“盖住”前30bit,只有2bit可用于分配
28的的二进制 0001 1100,后2位可以是00、01 、10、 11 ,共4种,对应28、29、30、31
试验,创建容器,docker run --network my_network ……
当创建第5个容器时,报错
docker inspect my_network如下,“没有可用的ipv4地址”。
所以之前我到处查的说docker network只能指定ip 起始,不能指定具具体范围的说法简直误人子弟啊,我就信了。做技术还是得多理解下原理才能找到答案,去伪存真。
发表评论