Docker – 通过它的公共IP在同一台机器上访问另一个容器,没有docker链接

在具有静态可公开路由IP的VPS上,我有一个简单的Web服务器(在端口8080上)在一个导出端口8080( -p 0.0.0.0:8080:8080 )的容器中运行。

如果我旋转了另一个容器在同一个盒子上,试图curl <public ip of host>:8080地址,它会parsing地址,尝试连接,但在请求(它只是挂起)时失败。

从主机的shell(外部容器), curl <public ip of host>:8080成功。

为什么发生这种情况? 我的感觉是,不知何故,虚拟网卡不能互相通信。 有没有解决方法(除了使用docker链接)?

根据Docker的高级networking文档( http://docs.docker.io/use/networking/):“Docker在底层使用iptables来接受或放弃容器之间的通信&#x3002;

因此,我相信你需要用iptables设置入站和出站路由。 这篇文章给出了一个坚实的描述如何做到这一点: http : //blog.codeaholics.org/2013/giving-dockerlxc-containers-a-routable-ip-address/