如何使docker只使用eth1接口与其他主机通信?

我正在使用数字海洋。 接口“eth1”是私有的,“eth0”是公共的。 如何使docker0创build的网桥只使用私有接口eth1?

docker创build的桥没有连接到任何物理接口。 外部访问由iptables nat表中的第3层转发和NAT规则来调节。

这意味着您可以通过操作路由表和/或防火墙规则来控制Docker容器使用哪个接口。 例如,要阻止您的容器将stream量转发出eth0

 iptables -A FORWARD -i docker0 -o eth0 -j DROP 

这将从eth0删除容器的所有stream量。

当然,如果(a)你的容器试图访问一个外部主机,并且(b)唯一的路由通过你的默认网关,可能是eth0 ,那么你的容器现在运气不好。