如果我执行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
。
有什么问题?
答案 0 :(得分:2)
检查postgres实例的数据目录中的pg_hba.conf文件。在此文件中,您可以配置允许哪些用户通过哪个网络进行身份验证。通过添加以下行确保您的postgres实例接受来自docker0网络的连接:
host all all 172.17.0.0/24 md5
在这一行中你可以调整第二个' all'指定某个用户。
答案 1 :(得分:1)
我忘了在listen_addresses="*"
...
postgresql.conf