iptablesはdockerコンテナにリダイレクトできますか?

iptablesはdockerコンテナにリダイレクトできますか?

ドッカーネットワークにIPが172.20.0.2のドッカーコンテナがあるとします。

このドッカーコンテナの内部には2つのプロセスが実行されています。

  1. ポート 8000 をリッスンする http サーバーは常に「hello」と応答します。
  2. 引き続き接続しようとしているhttpクライアントhttp://example.com

ipテーブルを使って可能ですか?所有者そのコンテナのすべてのアウトバウンドトラフィックを同じコンテナに転送します。

したがって、上記のシナリオでは、example.comへのhttpリクエストは実際には同じコンテナ内のポート8000​​に移動して「hello」を返します。

これがdockerにない場合は、次のようになります。私は近いですか?

iptables -t nat -A OUTPUT -s 172.20.0.0/16 -j REDIRECT --to-ports 8000

しかし、これはホストから8000に渡されるだけだと思います。

答え1

/etc/hostsDockerコンテナでファイルを編集することをお勧めします。

172.20.0.2  example.com

これは、クライアントが接続しようとするたびにhttp://example.com:8000HTTP を介してトラフィックは 172.20.0.2:8000 の Docker コンテナに転送され、期待どおりに「hello」応答が受信されます。

関連情報