我有一个具有多个IP地址的专用服务器,一些IP具有关联的mac地址,而其他(在子网中)没有mac地址.我使用以下方法创建了docker macvlan网络:
docker network create -d macvlan -o macvlan_mode=bridge --subnet=188.40.76.0/26 --gateway=188.40.76.1 -o parent=eth0 macvlan_bridge
Run Code Online (Sandbox Code Playgroud)
我有ip:88.99.102.115与mac:00:50:56:00:60:42.使用以下方法创建容器:
docker run --name cont1 --net=macvlan_bridge --ip=88.99.102.115 --mac-address 00:50:56:00:60:42 -itd nginx
Run Code Online (Sandbox Code Playgroud)
这工作,我可以从外面访问托管在该IP地址的nginx.
IP的情况,没有mac地址,网关不在子网中.
子网:88.99.114.16/28,网关:88.99.102.103
无法使用以下方法创建网络:
docker network create -d macvlan -o macvlan_mode=bridge --subnet=88.99.114.16/28 --gateway=88.99.102.103 -o parent=eth0 mynetwork
Run Code Online (Sandbox Code Playgroud)
引发错误:
no matching subnet for gateway 88.99.102.103
Run Code Online (Sandbox Code Playgroud)
尝试增加子网范围以包括网关:
docker network create -d macvlan -o macvlan_mode=bridge --subnet=88.99.0.0/16 --gateway=88.99.102.103 -o parent=eth0 mynetwork
Run Code Online (Sandbox Code Playgroud)
网络已经创建,然后使用'mynetwork'启动nginx容器,而且我没有88.99.114.18的mac地址所以使用了一些随机的mac地址40:1c:0f:bd:a1:d2.
docker run --name cont1 --net=mynetwork --ip=88.99.114.18 --mac-address 40:1c:0f:bd:a1:d2 -itd nginx
Run Code Online (Sandbox Code Playgroud)
无法达到nginx(88.99.102.115).
我对网络知识不多,如果你详细解释,它会非常有用.
我的/ etc/network/interfaces文件:
### …Run Code Online (Sandbox Code Playgroud)