ドッカーネットワークにIPが172.20.0.2のドッカーコンテナがあるとします。
このドッカーコンテナの内部には2つのプロセスが実行されています。
- ポート 8000 をリッスンする http サーバーは常に「hello」と応答します。
- 引き続き接続しようとしている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/hosts
Dockerコンテナでファイルを編集することをお勧めします。
172.20.0.2 example.com
これは、クライアントが接続しようとするたびにhttp://example.com:8000HTTP を介してトラフィックは 172.20.0.2:8000 の Docker コンテナに転送され、期待どおりに「hello」応答が受信されます。