群晖开启docker桥接教程(准备篇)
桥接网卡和局域网DHCP模式进行图
开始配置群晖docker开启局域网桥接
作死实验者:缔梦天诚 希望转载的保留
开始我参考国外论坛各种毛病各种方法都不行,国内各大论坛都没有教程
首先群晖默认网络模式是bridge+host 我们将开启的网络模式bridge-host
Bridge:docker容器内部虚拟网桥,容器内部172.17.0.X网段 无法获取主机网络ip 访问容器需要映射端口 并且不能和主机占用端口冲突 不映射端口无法使用
Host:host模式 将容器绑定到主机网卡使用主机的ip 并且不能和主机占用端口冲突 使用哪些端口自动占用
bridge-host:通过主机的虚拟网卡来创建虚拟网桥 将容器的网卡绑定到这个直通局域网的虚拟网桥上
优点:容器获取到局域网ip, 容器ip和群晖主机一个网段,端口1-65535全端口使用 不和主机冲突 ip手动指定
可以说bridge-host模式就是把容器都桥接到你群晖所在的局域网
那么开始教程
首先你的群晖开启了root账号并用putty登录上
如图 打开群晖控制面板 —》》》》网络—-》》》》网络界面—-》》》管理—》》》》Open vSwitch设置
勾选启动——————》》点击确定—》》》等待群晖进入界面
登录putty
执行创建网络命令
docker network create -d macvlan \\
–subnet=192.168.99.0/24 \\
–gateway=192.168.99.254 \\
-o parent=ovs_eth0 \\
bridge-host
192.168.99.0/24是整个192.168.99.X网段 这个网段要和路由一样 就是docker网卡DHCP分配地址的段位
192.168.99.254是路由器管理ip 这个网关要和路由一样实际就是路由器ip
因为我的群晖ip是192.168.99.1 所以192.168.99.1被占用了需要添加参数–aux-address=\”my-nas=192.168.99.1\”
意思是aux-address跳过ip 设备是my-nas 使用的ip 192.168.99.1
我自己的命令就是
docker network create -d macvlan \\
–subnet=192.168.99.0/24 \\
–gateway=192.168.99.254 \\
–aux-address=\”my-nas=192.168.99.1\” \\
-o parent=ovs_eth0 \\
bridge-host
我在网络设置固定的
执行完成 打开群晖docker
出现bridge-host网络模式
创建容器方法 这样配置就是看容器启动顺序自动分配ip 如果你只有1个桥接容器就好猜了 我的群晖占用了1 那桥接1个容器
这个容器ip就是192.168.99.2
手动命令创建容器并绑定ip的方法
容器绑定到桥接网卡 并指定ip
–network bridge-host \\ 绑定容器到你新建的 名称为bridge-host的网络
–ip=192.168.99.11 \\ 给容器指定ip
在你创建的容器里添加绑定的网络 和绑定的ip
如下
docker run -itd –restart=always \\
–network bridge-host \\
–ip=192.168.99.2 \\
–name kms-server3 \\
luodaoyi/kms-server
看看完成效果
最终结果 容器成功接入局域网ip 并且端口没有冲突
上面讲了只是开启ipv4的那么ipv6就只是多几个参数而已
docker network create -d macvlan \\
–subnet=192.168.99.0/24 \\
–gateway=192.168.99.254 \\
–ipv6 \\
–subnet=fe80::/64 \\
–gateway=fe80::1 \\
–aux-address=\”my-nas=192.168.99.1\” \\
-o parent=ovs_eth0 \\
lan1-bridge
群晖6.1可以使用ipv6的 支持局域网v4+v6+获取公网v6 群晖6.2X因为群晖封闭没法使用ipv6
subnet局域网子网网段
gateway 局域网网关
aux-address dhcp跳过的ip(因为192.168.99.1是我群晖自己的不能给容器用 所以跳过)
parent 桥接的网卡 ovs_eth0就是网卡eth0
lan1-bridge 网络名称 在群晖创建容器时候添加网络里显示的名称
下面是6.2可以用的示例 因为某些未知原因6.2无法开启局域网v6支持所以没法获取公网v6
docker network create -d macvlan \\
–subnet=192.168.99.0/24 \\
–gateway=192.168.99.254 \\
–aux-address=\”my-nas=192.168.99.1\” \\
-o parent=ovs_eth0 \\
lan1-bridge
创建固定ip的docker容器 给容器指定ipv4和ipv6 这个适用于自己搭建广告过滤,dns解析 我这个示例就是过滤广告的容器
Docker run -d \\
–name adguard-home \\
–restart=always \\
–net=lan1-bridge \\
–ip=192.168.99.2 \\
–ip6=fe80::2 \\
adguard/adguardhome
–name 容器名称
net 容器所使用的网络 这里就是上面创建的网络
ip 指定容器所使用局域网ipv4地址
ip6指定容器所使用局域网ipv6地址(这个地址不影响docker容器的局域网dhcp-v6和公网v6获取)
这个v6只是让你局域网更加简单的使用这个docker容器的服务
ip6 这一行必须是开启了ipv6的才行 如果网络没有ipv6就去掉这行
请登录后查看评论内容