我正在使用数字海洋。界面" eth1"是私人的," eth0"是公开的。如何使docker docker0
创建的桥只使用私有接口eth1?
答案 0 :(得分:4)
docker创建的网桥没有连接到任何物理接口。外部访问由iptables nat
表中的第3层转发和NAT规则调解。
这意味着您可以通过操纵路由表和/或防火墙规则来控制Docker容器使用的接口。例如,要防止您的容器转出eth0
:
iptables -A FORWARD -i docker0 -o eth0 -j DROP
这会丢弃来自eth0
的容器的任何流量。
当然,如果(a)您的容器正在尝试访问外部主机,并且(b)通过您的默认网关(可能是eth0
,则该主机的唯一路由是,那么您的容器现在是运气不好。