У меня есть пара контейнеров docker, запущенных на главном компьютере, эти контейнеры вместе обеспечивают выполнение моего приложения. Таким образом, для каждой итерации / экземпляра моего приложения требуется запуск пары контейнеров docker. До сих пор я использую параметр --link при запуске второго контейнера, чтобы связать первый контейнер и получить IP-адрес первого контейнера из файла hosts, чтобы использовать его программно.
Теперь мне нужно настроить прозрачный прокси-сервер для второго контейнера docker. таким образом, весь http-трафик (порт 80) второго контейнера должен проходить через порт 8080 первого контейнера.
Первый IP-адрес контейнера: 172.17.0.4 (Имеет прокси-службу, работающую на порту 8080).Второй контейнер IP: 172.17.0.6 (Имеет клиентские инструменты, такие как браузер).Я хотел перенаправить весь http-трафик (порт 80) из 172.17.0.6 в порт 8080 из 172.17.0.4.
то есть)> Трафик до 80 из 172.17.0.4 <--- 8080 из 172.17.0.6
Я попытался добавить правила iptables во второй контейнер для приведенной выше конфигурации. Но ни один из них не сработал.
~# sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 172.17.0.4:8080
Не работает.
~# sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 172.17.0.4:8080
Не работает.
~# sudo iptables -t nat -A POSTROUTING -j MASQUERADE
Итак, мой вопрос в том, как я могу настроить прозрачный прокси-сервер внутри контейнера docker, который может перенаправлять весь трафик указанного порта на порт другого контейнера?
P.S: Если я вручную добавлю настройки прокси-сервера в браузер во втором контейнере. Он работает нормально. Но я хотел установить прозрачный прокси-сервер для всего контейнера, а не только для браузера. таким образом, любой сетевой запрос от любого инструмента внутри второго контейнера будет перенаправлен на прокси-порт первого контейнера.
Я прочитал несколько руководств по обратному проксированию всех контейнеров, работающих вместе, с использованием nginx / HAProxy. Но я хотел настроить отдельный контейнер с его собственным прокси-контейнером в качестве пары.