gpt4 book ai didi

postgresql - Docker - Postgres 和 pgAdmin 4 : Connection refused

转载 作者:行者123 更新时间:2023-11-29 11:30:49 29 4
gpt4 key购买 nike

docker 新手,我正在尝试通过本地主机将我的 pgAdmin 容器连接到 postgres 容器。

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
0b00555238ba dpage/pgadmin4 "/entrypoint.sh" 43 minutes ago Up 43 minutes 0.0.0.0:80->80/tcp, 443/tcp pedantic_turing
e79fb6440a95 postgres "docker-entrypoint.s…" About an hour ago Up About an hour 0.0.0.0:5432->5432/tcp pg-docker

我使用 psql 命令成功连接。

psql -h localhost -U postgres -d postgres

但是当我使用与 psql 相同的参数在 pgAdmin 上创建服务器时,出现以下错误。

Unable to connect to server:

could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432? could not connect to server: Address not available Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432?

我通过容器上 docker inspect 给出的 IP 地址成功连接。

顺便说一下,我检查了 postgresql.conf 并断言 listen_addresses = '*' 以及 pg_hba.conf 包含 host all all all md5

但我不明白,为什么我不能使用本地主机地址?为什么 docker 甚至给我一个不是本地的地址?

最佳答案

在这种情况下:

  1. Pgadmin 无法连接到本地主机,但 psql 在 docker 外部运行。
  2. pgadmin 和 Postgres 都作为容器运行

虽然您没有说明是否这样做,但理想情况下,两个容器都可以是自定义 bridge network 的一部分。用于自动 DNS 解析。

如果没有明确添加,它们将成为默认桥接网络的一部分。

要找出在您的 docker 运行时中创建的网络,请键入:$ docker network ls

一些网络会在控制台中列出,也许你会发现一个 [name]_default 它应该是你的网络。

执行docker network inspect [名称]_default它会显示一堆信息,对我们来说最重要的是 IPv4Address,像这样:“7c3cd7532ab8aacc70830afb74adad7296d9c8ddd725c498af2d7ee2d2c2aadd”:{
“名称”:“intime_postegres_1”,
“端点 ID”:“56a9cb574469f22259497b72719f9f4a3e555b09f95058fcf389ef5287381f28”,
"MacAddress": "02:42:ac:12:00:02",
"IPv4地址": "172.18.0.2/16",
“IPv6地址”:“”
}

不要在 pgAdmin 新服务器对话框中使用 localhost 作为服务器名称/ip,而是连接到 postgres 实例的“IPv4Address”。

在我的例子中连接 172.18.0.2:5432,效果非常好。

关于postgresql - Docker - Postgres 和 pgAdmin 4 : Connection refused,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53610385/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com