想在绿联DX4600 NAS的Docker上部署 Openwrt 做旁路由,根据网上牛人的教程操作,创建容器时报错了。求赐教指点。
执行的命令:
docker run -d --restart always --name openwrt --privileged --network macnet --ip=192.168.3.199 esirpg/buddha /sbin/init
docker: Error response from daemon: failed to create the macvlan port: operation not supported.
之前的操作:
1、ifconig
2、创建虚拟网络;因为是聚合网口,有说用bond的,也有说用eth的,两种都试了,但创建容器时都会报错
docker network create -d macvlan --subnet=192.168.3.0/24 --gateway=192.168.3.1 -o parent=eth1 macnet
docker network create -d macvlan --subnet=192.168.3.0/24 --gateway=192.168.3.1 -o parent=bond-wan macnet
3、第3步创建容器,就报错了
docker run -d --restart always --name openwrt --privileged --network macnet --ip=192.168.3.199 esirpg/buddha /sbin/init
docker: Error response from daemon: failed to create the macvlan port: operation not supported.
本人存粹比葫芦画瓢的折腾。求各位赐教指点。
可以初步判断是因为宿主机系统不支持macvlan导致的错误。可以尝试使用bridge网络模式来创建容器,具体步骤如下:
docker network create --driver bridge mybridge
docker run -d --name openwrt --network mybridge --ip 172.20.0.2 esirpg/buddha /sbin/init
其中,mybridge是创建的bridge网络的名称,172.20.0.2是容器的IP地址,esirpg/buddha是OpenWrt镜像的名称。
通过bridge网络模式启动容器后,可以使用iptables将Docker主机上的流量导入到容器中,实现旁路由的功能。具体步骤可以参考以下链接:
https://github.com/esirpg/docker-openwrt
希望能够帮助到提问者解决问题。
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
这个错误的原因可能是由于您使用的网卡不支持macvlan。建议尝试使用其他的网络模式,例如bridge模式。
以下是使用bridge模式运行OpenWrt容器的示例命令:
1.创建docker容器网络
docker network create --subnet=172.18.0.0/16 mynet
2.运行OpenWrt容器
docker run -d -it --name openwrt --restart=always --network mynet --ip 172.18.0.2 --privileged=true -v /mnt/data/docker/openwrt/data:/data esirpg/buddha
其中/mnt/data/docker/openwrt/data
是映射到容器的/data
目录,可以根据自己的需要修改。
希望可以帮到您,如有疑问请随时追问。
如果我的回答解决了您的问题,请采纳!
双网口主机通过 docker 安装 openwrt 实现软路由功能
可以借鉴下
https://blog.csdn.net/qq_38251691/article/details/128356619