使用Docker使用特定的出站IP

我有3个networking接口: docker0eth0eth0:0 (别名)。

  auto eth0 iface eth0 inet static address 1.2.3.4 netmask 255.255.255.0 network 1.2.3.0 broadcast 1.2.3.255 gateway 1.2.3.254 auto eth0:0 iface eth0:0 inet static address 5.6.7.8 netmask 255.255.255.255 broadcast 5.6.7.8 

docker0是由docker0创build的桥梁。

使Docker及其所有容器使用出站IP 5.6.7.8而不是1.2.3.4最简单的方法是什么?

看起来没有简单的方法来与docker做 – 至less目前。

我最终做的只是使用SNAT:

  iptables -t nat -I POSTROUTING -p all -s 172.17.0.0/16 -j SNAT --to-source 5.6.7.8 

docker0使用172.17.0.0/16是子网。

使用–ip命令行参数。

 # echo 'DOCKER_OPTS="$DOCKER_OPTS --ip=5.6.7.8"' >> /etc/default/docker # docker help ... --ip=0.0.0.0 Default IP address to use when binding container ports