如果你的主机有多块网卡,你可能会需要把 Docker 容器绑定到指定网卡,以使容器内的所有网络请求都经过该指定网卡发送至外网。不幸的是,Docker 并没有直接提供实现该需求的方法。不过,通过 iptables 可以轻松搞定。对于 10.0.0.100 我们知道它是主机第二块网卡的 IP 地址。简单来说,在主机上运行 Docker 时,它会在主机上创建一个名为 docker0 的网桥,其 IP 地址为 172.17.0.1 ,网段为 172.17.0.0/16 。默认情况下,Docker 会为所有容器从该网段分配一个 IP 地址。由于在使用默认网桥时,Docker 不允许为容器指定 IP 地址,所以我们无法提前预知某个容器最终被分配给的 IP 地址是什么,也就无法提前通过 iptables 规则为其指定出口网卡。

绑定Dokcer容器到主机指定网卡的方法

绑定Dokcer容器到主机指定网卡的方法