docker network create -d bridge --subnet=10.1.1.0/24 --gateway=10.1.1.254 -o "com.docker.network.bridge.name=brlan" brlan
docker run -d --restart always --name immortalwrt --network brlan --privileged -v immortalwrt-config:/etc/config -v /lib/modules:/lib/modules --entrypoint /sbin/init immortalwrt:current
可用于设置旁路由模式
这里就算不设置–subnet和–gateway也不影响
IP=192.168.0.211
docker network connect immortalwrt macvlan-network --ip $IP
宿主机无法和容器通过macvlan互通,需要额外设置. 局域网其他机器能和容器机直接互通. 如果使用macvlan旁路由功能,还需要在路由器的 网络->设备 里添加eth1网桥(新增的macvlan), 在网络->接口里添加新接口,使用网桥。
/etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth0'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '10.1.1.1'
option gateway '10.1.1.254'
option netmask '255.255.255.0'
option ip6assign '60'
list dns '10.1.1.254'
list dns '114.114.114.114'
list dns '8.8.8.8'
执行命令
docker exec -it immortalwrt sh
vi /etc/config/network # 设置上面的文件
/etc/init.d/network restart # 重启网络
路由设置
iptables -t nat -A POSTROUTING -o br-lan -j MASQUERADE
等价于后台管理->网络->防火墙->区域->lan 勾上 IP动态伪装
如果不设置这个, 旁路由没开启NAT上不了网.
需要对easytier的网卡(这里是tun0)配置动态伪装,命令如下
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
等价于, 开启IP动态伪装时, 在后台管理->网络->防火墙->区域->区域设置->涵盖的设备加上tun0网卡。
# 更新到镜像
docker commit immortalwrt immortalwrt:current
# 还原初始配置
docker tag immortalwrt:base immortalwrt:current
docker rm -f immortalwrt
docker network rm brlan