文笔不好
用到的镜像是zzsrv/OpenWrt,原版教程是使用主机模式网络设置,他不能与飞牛(宿主机)网络互访,为了解决这个问题,使用 Docker 默认桥接网络部署的op,桥接宿主机网络进行互联。
先看zzsrv/OpenWrt镜像原教程(进入SSH安装)
使用主机模式网络
1、打开网卡混杂模式,其中eth0根据ifconfig命令找到自己的本地网卡名称替换
sudo ip link set enp1s0 promisc on
2、创建名称为macvlan的虚拟网卡,并指定网关gateway、子网网段subnet、虚拟网卡的真实父级网卡parent(第一步中的本地网卡名称)
docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=enp1s0 macnet
3、查看虚拟网卡是否创建成功,成功的话能看到名称为“macnet”的虚拟网卡
docker network ls
4、拉取镜像,可以通过阿里云镜像提升镜像拉取速度
docker pull registry.cn-hangzhou.aliyuncs.com/zzsrv/openwrt:latest
5、创建容器并后台运行
docker run --restart always --name openwrt -d --network macnet --privileged zzsrv/openwrt /sbin/init
6、进入容器内部环境
docker exec -it openwrt bash
7、根据自己实际情况修改网络配置,修改完成后保存配置
vi /etc/config/network
8、退出容器内部环境,在宿主机环境执行重启容器命令
docker container restart openwrt
使用 Docker 默认桥接网络
先在Docker的镜像仓库下载zzsrv/OpenWrt镜像

仓库下载不了的可以用上面的命令拉取:
#SSH 拉取镜像命令
docker pull registry.cn-hangzhou.aliyuncs.com/zzsrv/openwrt:latest
1.不在Docker里面部署,打开SSH 链接你的飞牛,
用下面的命令部署(SSH就不截图了,不懂的找度度。。)
要ROOT权限,sudo -i进入再运行代码
sudo docker run -d --name=openwrt \
--restart=always \
--privileged \
--network=bridge \ # 强制使用 Docker 默认桥接网络
-p 8081:80 \ #为了后面可以访问op,8081端口映射可以改自己想要的
-v /lib/modules:/lib/modules \
zzsrv/openwrt /sbin/init
部署成功会显示一串数字字母,如图:

- 进入容器内部环境(与上面的第六、七步一样)
#1.进入容器OP内部环境
docker exec -it openwrt bash
#2.输入以下代码进入OP修改网络配置
vi /etc/config/network
修改参考下面:
config interface 'lan'
option proto 'static'
option netmask '255.255.0.0' # 修改为 255.255.0.0,匹配 Docker 桥接网络
option ip6assign '60'
option ipaddr '192.168.0.8' # 删除旧 IP
option ipaddr '172.17.0.2' # 设置为 Docker 桥接网络内的 IP
option gateway '192.168.0.1' # 删除旧网关
option gateway '172.17.0.1' # 设置为 Docker 桥接网关
option dns '192.168.0.1' # 删除旧 DNS
option dns '8.8.8.8 114.114.114.114' # 使用公共 DNS 或者你的网关地址、本地网络运营商的DNS均可
option device 'br-lan'
注:方向键移动到需要修改的地方,按i 开始修改,修改完Esc 退出修改,键盘输入:wq 退出。
3.重启网络服务
#在容器内执行,重启OP网络配置
/etc/init.d/network restart
4.按ctrl+p+q退出容器内部环境,在宿主机环境执行重启op
docker container restart openwrt
有重启OP失败的,可以在飞牛nas界面,打开Docker里面重启或者关机,再打开。
这样就可以用飞牛的IP访问OP了 示例:http://192.168.1.111:8081