来自容器外部以及容器内部的相同IP(公共)

时间:2017-01-20 10:21:14

标签: linux docker

我正在尝试使用例如Docker容器访问来自Internet的1.2.3.4:9999:99(因此从容器外部)被视为来自内部的相同IP,因此当我进入容器并执行curl http://bot.whatismyipaddress.com/时,我会得到1.2.3.4。我正在努力工作几个小时但没有进展。

我正在使用docker run --name public254 -d -p 123.456.789.254:22:22 some-image:latest运行容器,并且可以通过123.456.789.254访问它。在里面它被视为主机的主要IP,因为它应该。

现在我要修改它。接下来我该怎么办?

1 个答案:

答案 0 :(得分:0)

好。我做到了。

  1. 启用转发
    echo 1 > /proc/sys/net/ipv4/ip_forward
  2. 找出容器的内部IP
    docker inspect -f '{{ .NetworkSettings.IPAddress }}' some_container
  3. 正确布线
    iptables -t nat -I POSTROUTING -p all -s <container internal IP> -j SNAT --to-source <container external IP>