群晖DSM7下docker配置macvlan网络模式简单教程欧鹿星球助手7个月前发布关注私信0938 docker配置macvlan网络模式 配置macvlan网络模式实现macvlan与host网络互通,及互通服务自启动 简单来说就是使用macvlan网络模式的docker容器,可以看作是局域网内的一个独立设备,它会有一个独立的内网IP。每个macvlan下的docker容器,都有自己一套完整的端口可用,不会互相冲突。来说,macvlan最大的优点就是可以和宿主机配置为不同网关,方便网络分流。当然如果是其他网络拓扑模式的同学,也可以通过macvlan来给每个容器分配好IP,方便通过IP分流管理。 打开Open vSwitch 首先进入-控制面板-网络-网络界面-管理-Open vSwitch 设置-打开Open vSwitch Open vSwitch就是虚拟交换机。可以简单这样理解,docker容器接入这台交换机,就可以连上你的路由器,相当于一台手机or平板or盒子接入你家网络。 查看NAS网卡情况 确认打开Open vSwitch开关以后,我们进入SSH控制台输入ip addr查看NAS网卡情况 确认Open vSwitch功能是否打开 图中列出了NAS的所有网卡,其中有一个ovs_eth0的网口,对应NAS物理网口信息。这个网口就是开启了Open vSwitch以后的联网网口。如果你的联网网口是其他口(eth*),这里的ovs_eth*也可能不一样,自行注意。等会创建macvlan网络需要使用这个端口,一定记好,不要搞错。 查看docker的网络详情 输入 docker network ls 查看docker的网络详情 目前默认只有三种网络模式 如果已经有driver为macvlan的docker网络,可以执行 docker network rm name来进行删除,name为macvlan网络实际名称,即图上的NAME栏参数。 创建自定义macvlan网络 确认docker网络中没有macvlan网络,我们再进行下一步。创建自定义macvlan网络。创建命令很简单,和创建docker容器类似 我这里内网网段是192.168.1.0/24主路由网关192.168.1.3旁路由网关192.168.1.5 我的目的是让qB和TR不经过旁路由网关,直接走主路由网关,所以要把macvlan的网关设置成 192.168.1.3 创建macvlan网络命令 仅ipv4 docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.3 -o parent=ovs_eth1 name ipv4&ipv6双栈 docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.3 --ipv6 --subnet=2008::/60 --gateway=2008::1 -o parent=ovs_eth1 name docker network create -d macvlan #指定创建的网络类型是macvlan –subnet=192.168.1.0/24 #macvlan的ipv4网段,这里写你的内网网段即可。 –gateway=192.168.1.3 #macvlan的ipv4网关,这里写您需要容器走的网关。 –ipv6 #启用ipv6支持 –subnet=2408::/60 #macvlan的ipv6前缀 –gateway=2408::1 #macvlan的ipv6网关 -o parent=ovs_eth1 #桥接网络走的是ovs_eth0接口,如果你的接口不是这个,请自行更改。 name #macvlan网络的名称 参数怎么填大家按照自己实际需求情况 这里给个参考 docker network create -d macvlan --subnet=11.0.0.0/24 --gateway=11.0.0.1 --ipv6 --subnet=2408:825c:900:xxxx::/60 --gateway=2408:825c:900:xxxx::1 -o parent=ovs_eth0 IP03 创建了一个名为GGGGG(名字随意,你喜欢就可以)的ipv4&ipv6双栈macvlan网络。 创建完成以后可以再次输入 docker network ls 检查是否创建成功,也可以打开docker的webui,检查网络信息 macvlan网络创建成功以后,我们就可以使用它来创建具体容器了 容器创建指定ipdocker命令 docker run -dit \ --net=IP03 \ --ip=192.168.1.80 \ --name clash \ -v /volume1/docker/clash/config.yaml:/root/.config/clash/config.yaml \ -p 8890:7890 \ --privileged=true \ --restart always \ dreamacro/clash –net=clash #为容器使用名为clash的docker网络模式–ip=192.168.1.80 #指定容器IP其余部分跟普通创建容器一致 创建其他容器只要 –net 配置为macvlan网络名称即可,大家自行举一反三创建成功以后可以看到macvlan网络模式下有三个容器 查看docker ip docker exec -it 891a6784b ip addr 以上就是如何创建macvlan网络模式,以及如何创建依赖于macvlan网络docker容器的方法 一般在macvlan模式下同网段的其他机器可以和容器互通,但宿主不能和容器互通,这是在macvlan模式设计的时候为了安全而禁止了宿主机和容器直接通信。 打个比方就是你用host模式创建的青龙面板,默认情况下是访问不了ping不通macvlan模式下的clash客户端的,反之也一样。 让macvlan与macvlan之间可以互通 如果想要实现互通,有个曲线救国的方法,就是macvlan与macvlan之间可以互通,只需要在宿主机再创建一个macvlan网络,然后修改路由,让数据经过这个macvlan达到互通的目的。 假设现有网段为192.168.1.0/24的网络: 名字 ip 接口 宿主机 192.168.1.10 eth0 容器 192.168.1.20 macvlan 建立一个名为macvlan2的macvlan接口,并分配一个ip: 名字 ip 接口 macvlan2 192.168.1.15 macvlan 命令: ip link add macvlan2 link eth0 type macvlan mode bridge ip addr add 192.168.1.15 dev macvlan2 ip link set macvlan2 up 修改路由,让宿主机到容器(192.168.1.20)的数据经过macvlan2: ip route add 192.168.1.20 dev macvlan2 宿主机 访问 容器的ip:192.168.1.20 容器 访问 宿主机ip:192.168.1.15 © 版权声明1.本站部分内容收集于互联网公开页面!若内容侵犯到您的权益,请发送邮件至:ai@ouluai.com,我们将第一时间处理! 2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。 3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明。 THE END网络技术# 群晖DSM7# docker配置macvlan网络模式# macvlan网络模式 喜欢就支持一下吧点赞8赞赏 分享QQ空间微博QQ好友海报分享复制链接收藏