无法从容器连接到我的 docker 主机 postgresql 数据库
Can't connect to my docker host postgresql database from a container
如果我这样做 ifconfig
,docker0
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="*"
...
如果我这样做 ifconfig
,docker0
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="*"
...