我正在使用 digital ocean 。接口(interface)“eth1”是私有(private)的,“eth0”是公共(public)的。如何让 docker docker0
创建的网桥仅使用私有(private)接口(interface) eth1?
最佳答案
docker 创建的网桥未附加到任何物理接口(interface)。外部访问由 iptables nat
表中的第 3 层转发和 NAT 规则进行调节。
这意味着您可以通过操作路由表和/或防火墙规则来控制 Docker 容器使用哪个接口(interface)。例如,为了防止容器将流量转发出 eth0
:
iptables -A FORWARD -i docker0 -o eth0 -j DROP
这会减少来自容器的所有流量,这些流量将传出 eth0
。
当然,如果 (a) 您的容器正在尝试访问外部主机,并且 (b) 到该主机的唯一路由是通过您的默认网关(可能位于 eth0
之外),那么您的容器现在运气不佳。
关于docker - 如何让docker只使用eth1接口(interface)与其他主机通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32289417/