我正在从docker compose运行我的代码,该代码正试图访问本地数据库(postgres(。每当我尝试运行时,我都会收到这个错误
Connection to 127.0.0.1:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
但是postgres正在端口5432
上运行
这是sudo netstat -ltnp | grep postgres
的结果
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1995/postgres
我在ubunto操作系统上使用postgresv10.9。
如果您试图访问容器内的localhost,那么它是容器的localhost而不是您的机器或任何其他容器。如果你的应用程序和数据库都在同一个组件中声明,请使用相同的网络,你可以使用容器名称
这是正确的,但如果您在本地机器中安装了Postgres,您可以绕过设置机器IP的容器限制,例如连接到Postgres到:5432
如果仍然不起作用,请检查您在本地机器5432端口上是否有任何防火墙限制,并检查Postgres是否设置为从外部源接收数据。
另外,这个例子应该只在"家里"使用,我不建议在公司网络或任何生产环境中使用。