Tengo un par de contenedores docker ejecutándose en la máquina host, estos contenedores juntos hacen que mi aplicación funcione. Por lo tanto, para cada iteración/instancia de mi aplicación, se requiere un par de contenedores docker para ejecutarse. Hasta ahora estoy usando el parámetro --link mientras ejecuto el segundo contenedor para vincular el primer contenedor y obtener la IP del primer contenedor del archivo hosts para usarlo programáticamente.
Ahora, necesito configurar un proxy transparente para el segundo contenedor de docker. de modo que, todo el tráfico http (puerto 80) del segundo contenedor debería pasar por el puerto 8080 del primer contenedor.
IP del primer contenedor: 172.17.0.4 (Tiene servicio de proxy ejecutándose en el puerto 8080).IP del segundo contenedor: 172.17.0.6 (Tiene herramientas de cliente como navegador).Quería reenviar todo el tráfico http (Puerto 80) de la 172.17.0.6 al puerto 8080 de la 172.17.0.4.
i. e)> Tráfico a 80 de 172.17.0.4 < - - - 8080 de 172.17.0.6
He intentado agregar las reglas de iptables dentro del segundo contenedor para la configuración anterior. Pero ninguno de ellos funcionó.
~# sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 172.17.0.4:8080
No funciona.
~# sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 172.17.0.4:8080
No funciona.
~# sudo iptables -t nat -A POSTROUTING -j MASQUERADE
Entonces, mi pregunta es, ¿cómo puedo configurar un proxy transparente dentro de un contenedor docker que pueda reenviar todo el tráfico de un puerto específico al puerto de otro contenedor?
P. S: Si agrego manualmente la configuración del proxy al navegador en el segundo contenedor. Está funcionando bien. Pero quería configurar el proxy transparente para todo el contenedor, no solo para el navegador. de modo que cualquier solicitud de red de cualquier herramienta dentro del segundo contenedor se reenviará al puerto proxy del primer contenedor.
He leído algunos tutoriales sobre el proxy inverso de todos los contenedores que se ejecutan juntos usando nginx/HAProxy. Pero quería configurar un contenedor individual con su propio contenedor proxy como un par.