本帖最后由 zhengbf 于 2024-10-15 09:23 编辑
使用macvlan网络模式创建docker,使容器拥有独立ip,便于分流适用场景:家里主路由网关是192.168.8.1,旁路由网关是192.168.8.2,因nas需要科学环境比如拉docker镜像、刮削等等,如何做到单独让qb、tr不走科学网络?常见的方法是使用旁路由的分流规则,比如openclash、passwall等或者爱快主路由上根据协议、域名分流等等,但是这种方法还是难免有一些流量偷走科学流量,如果docker容器可以有独立的ip,单独设置网关是最保险的措施。 经常使用的docker网络有bridge和host,本文介绍另一种:macvlan,本文可能不适用于小白,可以自己查看其他教程用web界面创建docker容器熟悉熟悉再来阅读本教程 准备工作: 1、飞牛1台,因飞牛不支持web界面创建,本文采用命令行创建 2、查看网卡名称,使用ifconfig命令: 记得先sudo -i切换到root用户,密码跟你nas密码一样!!
可以看到我有2张网卡,根据实际情况,记住你的网卡,我这边是ens7 3、查看内网网段,电脑网卡属性、主路由dhcp地址段都可以查看ipv4、ipv6网段,我家里主路由是爱快:
可以看到,我家V4:192.168.8.0/24 网关192.168.8.1 V6:****::1001/64 (V6涉及隐私,打马了) 创建macvlan命令:
docker network create -d macvlan --subnet=192.168.8.0/24 --gateway=192.168.8.1 --ipv6 --subnet=fd00:6666::/96 -o parent=ens7 macnet
命令注释: --subnet=家里V4子网网段 --gateway=家里V4不走科学环境的网关 --ipv6 --subnet=家里V6子网网段 v6跟我一样就行,这是个内网段,创建容器时会向父网卡dhcp获取真实ip -o parent=nas网卡,也是macvlan 的父网卡 macnet 这个随意,就是macvlan网络的网卡名称,可以跟我一样
出现一段很长的英文数字组合就表示创建成功了,可以通过命令docker network ls 确认,也可以在web界面docker-网络中查看
接下来创建容器,先创建个qb: 准备工作: 1、先创建好qb配置文件目录,我是在docker文件夹下新建了qb这个文件夹,右键-详细信息-复制原始路径,我的是:/vol1/1000/docker/qb
2、再创建qb下载目录,同样的方法复制真实路径 我的是:/vol2/1000/download
创建容器命令:
docker run --name qbittorrent --network macnet -v /vol1/1000/docker/qb:/config -v /vol2/1000/download:/downloads --ip=192.168.8.29 --restart=always --privileged=true -d linuxserver/qbittorrent:4.6.5
如报错拉不了镜像,请让你的nas走科学环境或者配置国内加速源,这个自行百度。 容器不需要额外配置ipv6地址,会自动获取 命令注释: --name=容器名称,随意就好,通过这个名字可以分辨哪些容器就行 --net=macnet macnet是上一步创建的macvlan网卡名称 --ip=192.168.8.29 ip地址根据实际情况更改 -v ****:/config 映射nas目录给docker容器,前面是刚刚复制原始路径,冒号后面是docker内目录名称,/config不能修改 -v ****:/downloads qb下载目录,同理,downloads如果修改,到时候web界面里面也要修改,最好不改 -v ****:/**** 如果你有其他目录也需要映射,自行添加,没有就跳过 --privileged=true 赋予容器最高特权,最好不改 --restart=always 重启策略:跟随nas启动docker容器 linuxserver/qbittorrent:latst 镜像名称,如果需要指定qb版本,把latst替换成具体版本号,比如linuxserver/qbittorrent:4.6.5
创建成功后依旧是一堆英文和数字组合:
首次登陆可到docker容器日志里面查看密码,账号默认是admin 查看用户,有V6和V4用户链接
下面是进阶玩法!!!!
macvlan具有隔离特性,所以你所创建的macvlan容器是无法与其他docker容器或者nas本身进行通信的,比如你的Moviepilot无法关联qb/tr下载任务,你的iyuu无法通过qb辅助做种转种,如果不在意这个,下面的可以不用看了。
简单来说就是添加一张网卡做为路由中转
ip link add TTTTT link ens7 type macvlan mode bridge
###TTTTT为网卡名 随意就好,ens7网卡名称根据实际情况更改
ip addr add 192.168.8.222 dev TTTTT
###ip地址 设置一个你局域网其他不冲突的任何地址,不是QB也不是nas的!
ip link set TTTTT up
###启动网卡
ip route add 192.168.8.29 dev TTTTT
###添加路由,ip地址为qb地址,目的是使去往qb的流量网TTTTT这张网卡过
添加后就可以正常ping通QB了!!!
本文有个注意事项 1、创建容器时必须把所有目录设置好,创建好后不要去web界面更改设置,比如映射目录之类的,因为更改后qb的ip地址会变化且有可能跟你局域网其他地址冲突,如果需要修改目录,建议重新创建容器(此bug已反馈,等待修复,具体是:web页面编辑后,docker inspect的IPAMConfig信息丢失)
|