我在 Windows 10 的 Virtual Box 上运行的“Ubuntu Docker 主机”上运行一些 frr(自由范围路由)和 ceos(Arista)容器。
我创建了一个 macvlan 网络(net3)并将其绑定(bind)到 Ubuntu 的 enp 接口(interface)并将我的容器连接到它。但是,我无法使用连接到 macvlan 网络的接口(interface)访问我的容器。
我阅读了有关主机和容器之间网络空间的一些限制,并将 macvlan 网络类型视为克服这些限制的解决方案。然而它没有用。
由于我的容器是一个具有多个接口(interface)的路由器,我希望我可以将我的新 net3 网络连接到我的容器。它会显示为一个新接口(interface)(确实如此),当我将家庭网络中的 IP 地址分配给该接口(interface)时,我的路由器将能够使用该接口(interface)的 IP 地址直接与外部通信并绕过任何类型的防火墙、NAT等
我知道我们可以使用连接到默认 docker0 网络的桥接网络,然后如果我们发布端口等,它将对来自容器的传出连接进行 NAT 并接受传入连接。但是我想要一个具有 2 个接口(interface)的容器,其中一个接口(interface)是在 docker0 网桥中,另一个使用来自家庭网络的 IP 地址连接到家庭网络,这将像物理机或我的案卷主机 Ubuntu VM 一样将其完全暴露给外部。
最佳答案
我想我找到了一种方法来完成这项工作。
我现在不明白的是,虽然在主机上禁用了路由,但这个“转发”规则对流量有影响,它实际上是在工作的。我也不需要为返回流量添加规则流量。 Docker 在创建容器期间添加的默认规则似乎照顾了这个方向。
关于docker - 将 Docker 容器连接到家庭网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58373487/