绿联DX4600 NAS的Docker上部署 Openwrt 报错

想在绿联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

img

img

img

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.

本人存粹比葫芦画瓢的折腾。求各位赐教指点。

以下内容部分参考ChatGPT模型:


可以初步判断是因为宿主机系统不支持macvlan导致的错误。可以尝试使用bridge网络模式来创建容器,具体步骤如下:

  1. 创建bridge网络
docker network create --driver bridge mybridge
  1. 启动容器
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