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

Can't connect to my docker host postgresql database from a container

如果我这样做 ifconfigdocker0 ip 是 172.17.0.1,当我 运行 我的容器化应用程序然后 docker network inspect bridge 我的应用程序 ip 是 172.17.0.2,我想他们在同一个网络上。

但在 myapp 中,我正在尝试连接到我的 docker 主机的 postgresql 数据库,我向我的 ORM 提供 172.17.0.1:5432,但它抛出错误 connect ECONNREFUSED 172.17.0.1:5432

有什么问题?

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

host    all             all             172.17.0.0/24            md5

在这一行中,您可以调整第二个 'all' 以指定特定用户。

我忘记在 postgresql.conf 中添加 listen_addresses="*" ...