在 Docker 中使用特定的出站 IP

PJ *_*ron 3 networking debian docker

我有 3 个网络接口:docker0,eth0eth0: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
Run Code Online (Sandbox Code Playgroud)

docker0 是 docker 创建的桥接自动。

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

PJ *_*ron 7

似乎没有简单的方法可以用 docker 来做到这一点——至少目前是这样。

我最终做的只是使用 SNAT:

 iptables -t nat -I POSTROUTING -p all -s 172.17.0.0/16 -j SNAT --to-source 5.6.7.8
Run Code Online (Sandbox Code Playgroud)

172.17.0.0/16是 使用的子网docker0