2017-01-20 17 views
0

Dockerのコンテナを、 1.2.3.4:9999:99インターネットから(したがってコンテナの外から)同じIPであると見なされるので、私がコンテナ内にいるときにcurl http://bot.whatismyipaddress.com/を実行すると、1.2.3.4が出ます。私はそれを何時間も苦労しており、進歩もありません。コンテナの外側とコンテナの内側と同じIP(public)

私はdocker run --name public254 -d -p 123.456.789.254:22:22 some-image:latestでコンテナを稼働しており、実際には123.456.789.254からアクセスできます。それが内部にあるとき、それは想定されているホストのメインIPと見なされます。

これを修正したいと思います。私は次に何をすべきですか?

答えて

0

やったよ。

  1. は、コンテナの内部IP
    docker inspect -f '{{ .NetworkSettings.IPAddress }}' some_container
  2. ルートを見つける
    echo 1 > /proc/sys/net/ipv4/ip_forward
  3. を転送して有効にそれを正しく
    iptables -t nat -I POSTROUTING -p all -s <container internal IP> -j SNAT --to-source <container external IP>
関連する問題