Docker容器无法连接到链接的容器服务

我使用Docker版本1.9.1在Ubuntu 14.04服务器主机上构builda34a1d5,我有4个容器:redis(基于alpine linux 3.2),mongodb(基于alpine linux 3.2),postgres(基于Ubuntu 14.04)以及一个将运行连接到这些其他容器(基于高山linux 3.2)的应用程序。 所有的db容器都在Dockerfile中显示相应的端口。

我对数据库容器进行了修改,以便它们的服务不绑定到本地主机IP,而是绑定到所有地址。 这样我就可以从应用程序容器连接到他们所有的人。 为了testing,我首先运行数据库容器,然后运行一个命令如下所示的应用程序:

docker run --rm --name app_container --link mongodb_container --link redis_container --link postgres_container -t localhost:5000/app_image 

我input应用程序容器的terminal,并validation其/ etc / hosts文件是否包含其他容器的IP和名称。 然后我可以ping所有的数据库容器。 但我无法连接到他们的端口的任何数据库容器。

一个简单的: telnet mongodb_container 27017简单的坐下来等待,如果我尝试连接到其他数据库容器,也会发生同样的情况。 如果我运行的应用程序,它也抱怨说,它不能连接到指定的数据库服务。

重要说明:我能够从主机远程login所有数据库容器的相应端口。

可能发生了什么?

编辑:我将包括数据库容器的运行命令:

 docker run --rm --name mongodb_container -t localhost:5000/mongodb_image docker run --rm --name redis_container -t localhost:5000/redis_image docker run --rm --name postgres_container -t localhost:5000/postgres_image 

那么,telnet的问题似乎与高山linux上的telnet客户端有关,因为以下两个命令告诉我,容器上的端口是开放的:

 nmap -p27017 172.17.0.3 nc -vz 172.17.0.3 27017 

主要集中在我发布的telnet命令上,我认为这个问题与端口closures有关, 我忽略了用来连接服务的应用程序的configuration文件(这是错误的文件名),我的不好。

现在一切正常。