2017-09-21 8 views
0

1つのコンテナに2つのサービス(A & B)を実行しています。あるサービスは、他のサービスが必要とする依存関係を模倣します。ドッカーコンテナ内のiptablesを使用したポート転送

サービスAはブラックボックスであり、IP 169.254.169.254を呼び出します。私は、

docker run -it --cap-add=NET_ADMIN --sysctl net.ipv4.conf.eth0.route_localnet=1 <name> bash 

一度bashで、私はコールを転送するためにiptablesの設定、サービスB.

それは、独自のiptablesを持つことができますので、私はこのようなコンテナを始めていますへのiptablesを使用してそのコールを転送したいです

iptables -t nat -I PREROUTING -p tcp -d 169.254.169.254 --dport 80 -j DNAT --to-destination "127.0.0.1:8099" -i eth0 

ただし、呼び出しは127.0.0.1にルーティングされません。 Ubuntu Xenial VMで実行された場合、同じ一連のステップが機能します。

答えて

0

あなたは、私は以下の使用して私のコンテナに簡単なテストを行なったし、それが

[email protected]:/# iptables -t nat -A OUTPUT -p tcp --dport 8080 -d 123.45.67.89 -j DNAT --to-destination 127.0.0.1:80 

[email protected]:/# curl 123.45.67.89:8080 
<!DOCTYPE html> 
<html> 
<head> 
<title>Welcome to nginx!</title> 
を素晴らしい仕事

iptables -t nat -A OUTPUT -p tcp --dport 80 -d 169.254.169.254 -j DNAT --to-destination 127.0.0.1:8099 

の下に実行することができます

関連する問題