小编Gow*_*vam的帖子

将单个 docker 容器透明代理到另一个 docker 容器

我在主机上运行了一对 docker 容器,这些容器一起使我的应用程序得以实现。因此,对于我的应用程序的每次迭代/实例,都需要运行一对 docker 容器。到目前为止,我在运行第二个容器时使用 --link 参数来链接第一个容器,并从主机文件中获取第一个容器的 IP 以便以编程方式使用它。

现在,我需要为第二个 docker 容器设置透明代理。这样,第二个容器的所有 http(端口 80)流量都应该通过第一个容器的端口 8080。

第一个容器 IP:172.17.0.4 (在端口8080上运行代理服务)。第二个容器IP:172.17.0.6(有浏览器等客户端工具)。我想将172.17.0.6的所有 http 流量(端口80)转发到172.17.0.4的端口8080

即)流量到 172.17.0.4 的 80 <---> 172.17.0.6 的 8080

我尝试在第二个容器中添加 iptables 规则以进行上述配置。但它们都不起作用。

~# sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 172.17.0.4:8080
Run Code Online (Sandbox Code Playgroud)

不起作用。

~# sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 172.17.0.4:8080
Run Code Online (Sandbox Code Playgroud)

不起作用。

~# sudo …
Run Code Online (Sandbox Code Playgroud)

proxy iptables transparent-proxy containers docker

5
推荐指数
1
解决办法
7634
查看次数

标签 统计

containers ×1

docker ×1

iptables ×1

proxy ×1

transparent-proxy ×1