无法从容器连接到我的docker host postgresql数据库

时间:2018-04-25 21:37:38

标签: linux postgresql docker networking fedora

如果我执行ifconfig,则docker0 ip为172.17.0.1,当我运行我的容器化应用程序然后docker network inspect bridge myapp ip为172.17.0.2时,它们会打开我想是同一个网络。

但在myapp中我试图连接到我的docker主机的postgresql数据库,我向我的ORM提供了172.17.0.1:5432,但它引发了错误connect ECONNREFUSED 172.17.0.1:5432

有什么问题?

2 个答案:

答案 0 :(得分:2)

检查postgres实例的数据目录中的pg_hba.conf文件。在此文件中,您可以配置允许哪些用户通过哪个网络进行身份验证。通过添加以下行确保您的postgres实例接受来自docker0网络的连接:

host    all             all             172.17.0.0/24            md5

在这一行中你可以调整第二个' all'指定某个用户。

答案 1 :(得分:1)

我忘了在listen_addresses="*" ...

中添加postgresql.conf