连接到“localhost”(::1) 上的服务器,端口 5432 失败:连接被拒绝 服务器是否在该主机上运行并接受 TCP/IP 连接?

问题描述 投票:0回答:1

我已经使用下一个命令运行 postgresql docker 容器

docker run -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust -v /var/lib/postgresql/data:/var/lib/postgresql/data postgis/postgis

pg_hba.conf 文件包括下一行:

# warning trust is enabled for all connections
host all all all trust

来自主机的连接请求:

psql -h localhost -U fake

数据库日志中的响应:

FATAL:  role "fake" does not exist

测试 Dockerfile:

FROM postgres:latest
RUN apt-get update && apt-get install -y postgresql-client
CMD ["psql", "-U", "fake", "-h", "localhost", "-p", "5432"]

测试 docker 容器失败并出现下一个错误:

psql:错误:连接到“localhost”(::1)的服务器,端口 5432 失败:连接被拒绝 服务器是否在该主机上运行并接受 TCP/IP 连接? 连接到“localhost”(127.0.0.1) 处的服务器,端口 5432 失败:连接被拒绝 服务器是否在该主机上运行并接受 TCP/IP 连接?

我在数据库日志中没有看到任何内容。

为什么我无法从测试 docker 容器发出请求?

postgresql docker networking
1个回答
0
投票

要连接两个不同的 docker 容器,我必须提供下一个参数

--network="host"

正确的命令是

docker run --network="host" test

© www.soinside.com 2019 - 2024. All rights reserved.