@
code123789 不是大佬。只是爱折腾,玩过你说的这种需求。
详细原理我讲不清楚。其实你应该搞明白这点,就好理解了。
假设宿主机 ip 地址=1.A
宿主机上面运行的 OP ,ip 地址=1.B
运行在主机 A 上其他容器,都相当于 A 上面安装的一个程序,本质上还是使用 A 的网络进行转发。
所以,你只要保证 A 的网关和 DNS 指向 1.B ,就可以快速的达到你需要的效果。
当然你还要解决的是 1.A 和 1.B 网络互通的事。例如,宿主机网络这样设置:
up ip link set eth0 promisc on
auto macvlan
iface macvlan inet static
address 192.168.123.123
netmask 255.255.255.0
gateway 192.168.123.1
dns-nameservers 192.168.123.1
pre-up ip link add macvlan link eth0 type macvlan mode bridge
post-down ip link del macvlan link eth0 type
参考:
https://blog.icolak.com/archives/n1he-zi-n1-an-zhuang-docker-ban-openwrthttps://www.shintaku.xyz/posts/docker-openwrt/ 但是我不是很推荐这个方案。