Postgresql docker中的Postrgresql curl访问

Postgresql docker中的Postrgresql curl访问,postgresql,docker,curl,Postgresql,Docker,Curl,我运行两个简单的容器,一个是flask应用程序,另一个是postgresql数据库。 Flask应用程序能够从psql获取/插入数据。但不知何故,我无法向该数据库发送简单的curl请求: curl localhost:5432 或 返回连接到0.0.0.0端口5432失败:连接被拒绝 因此,这可能是由未配置的psql db引起的。我尝试添加: RUN echo "listen_addresses='*'" >> /etc/postgresql/postgresq

我运行两个简单的容器,一个是flask应用程序,另一个是postgresql数据库。 Flask应用程序能够从psql获取/插入数据。但不知何故,我无法向该数据库发送简单的curl请求:

curl localhost:5432

返回
连接到0.0.0.0端口5432失败:连接被拒绝


因此,这可能是由未配置的psql db引起的。我尝试添加:

RUN echo "listen_addresses='*'" >> /etc/postgresql/postgresql.conf
对于我的Dockerfile,似乎没有.conf文件,事实上它根本不存在于我的数据库中。
我应该手动创建吗?如果是,在哪里创建?

如果您的Flask应用程序能够连接到DB,请检查您用于从Flask连接到PostgreSQL的主机IP/名称,并将其放入curl命令中


顺便问一下,你到底为什么要使用curl来连接数据库?如果您只想检查网络端口是否打开,请改用ncat。

使用curl连接到PostgreSQL的预期结果是“服务器的空回复”。PostgreSQL不是web服务器,它不讲HTTP。

“所以这可能是由未配置的psql db造成的。”不,对PostgreSQL安装执行
curl 0.0.0:5432
时,您将从服务器获得
curl:(52)空回复。这看起来更像是防火墙问题。当调用
curl localhost:5432
curl:5432
时,我从服务器得到
curl:(52)空回复。@Luuk有什么建议吗?你应该花更多的时间问你的问题,因为“使用”localhost、“0.0.0.0”和“作为localhost”毫无意义。为什么您要尝试
localhost
两次?哪里是
0.0.0.0
?我已经更新了问题,希望现在清楚了不,还是不清楚,因为你说“但不知怎么的,我不能向数据库发送一个简单的curl请求”。几行之后,你收到了服务器的回复,说“curl:(52)服务器的空回复”。结论是,您确实向服务器发送了一些内容,并且服务器以非常安静的方式(空响应)进行了响应,这就是为什么
curl 0.0.0.0:5432
RUN echo "listen_addresses='*'" >> /etc/postgresql/postgresql.conf