2014-01-08 88 views
0

我在Docker容器中的应用程序中有一个应用程序。我有另一个Docker容器中的数据库。数据库容器有一个暴露的端口49155.应用程序要求数据库暴露在端口3306上,并且由于IonCube混淆,我无法更改。所以,我可以将我的应用程序指向数据库容器,但应用程序无法找到数据库(错误的端口)。Iptables将远程端口转发到本地端口进行本地访问

我最初的解决方案是我们使用iptables的转发端口49155端口3306的本地请求到远程容器:

iptables -t nat -A PREROUTING -p tcp --src 127.0.0.1 --dport 3306 -j REDIRECT --destination 192.168.200.212 --to-ports 49155 

仍然没有工作。有什么想法吗?

回答

3

http://docs.docker.io/en/latest/use/port_redirection/#port-redirection所述,如果您使用docker run -name database -p 127.0.0.1:3306:49155 <DB_image> <cmd>将数据库的端口暴露给主机上的3306。

如果你然后运行你的应用链接到databasehttp://docs.docker.io/en/latest/use/working_with_links_names/解释我会假设应用程序容器在3306上有DB端口?

如果可行的话,你不需要iptables。

+0

我只需要花一些时间就可以了,并且评论Docker为您处理这件事的真棒。 –

相关问题