当前位置: 首页 > 知识库问答 >
问题:

docker-postgres和pgAdmin 4:连接被拒绝

惠凯歌
2023-03-14

我是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 -h localhost -U postgres -d postgres

无法连接到服务器:连接被拒绝服务器是否在主机“localhost”(127.0.0.1)上运行并接受端口5432上的TCP/IP连接?无法连接到服务器:地址不可用是否在主机“localhost”(::1)上运行并接受端口5432上的TCP/IP连接的服务器?

我成功地通过容器上的Docker Inspect给出的IPAddress进行连接。

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

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

共有1个答案

拓拔野
2023-03-14

在这种情况下:

  1. pgadmin无法连接到localhost,但psql在Docker外部工作。
  2. pgadmin和Postgres都作为容器运行

虽然您没有指出是否要这样做,但理想情况下,这两个容器都可以是用于自动DNS解析的自定义网桥网络的一部分。

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

若要查找在docker运行库中创建的网络,请键入:$docker network ls

控制台中将列出一些网络,也许您会找到一个[name]_default它应该是您的网络。

执行Docker network inspect[name]_default会显示一堆信息,对我们来说最重要的是IPv4Address,如下所示:“7C3CD7532AB8AACC70830AFB74ADAD7296D9C8DDD725C498AF2D7EE2D2C2AAdd”:{“name”:“INTIME_POSTEGRES_1”,“ENDPOINTID”:“56A9CB574469F22259497B72719F9F4A3E555B09F95058FCF389EF5287381F28”,“MacAddress”

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

在我的例子中,以172.18.0.2:5432连接,就像一个魅力。

 类似资料:
  • postgres-db 2021-02-23 22:46:3.410 UTC[1]日志:数据库系统已准备好接受连接 .环境: Docker-compose: 日志: app_1 22:46:31.020[error]GenServer#PID<0.368.0>终止app_1**(dbconnection.connectionerror)tcp连接(postgres-DB:5433):连接拒绝-:e

  • 问题内容: 我正在尝试通过代码访问Redis服务器,但未连接。但是,如果我猛击redis容器,我可以访问redis-cli。 docker-compose.yml看起来像这样 Dockerfile_redis 当我尝试使用此代码连接到Redis服务器时 它发出此警告 有谁知道如何将Redis容器连接到PHP容器? 问题答案: 你的问题 Docker Compose 为不同的服务创建了单独的dock

  • 我使用的是Postgres 9.1.5。JDBC在第一个实例中运行良好,但当我再次尝试时,它开始拒绝连接。例如,我使用JDBC登录到我的web应用程序,效果很好。但是,我尝试使用连接获取其他数据,它引发了一个异常:连接被拒绝。我确信我的代码没有问题,因为上次运行良好的登录JDBC也引发了一个异常:连接被拒绝。 重新启动postgres windows服务后,它再次工作。然后,登录JDBC,获取一些

  • 试图在localhost中建立从app容器到mysql容器的连接,出现连接拒绝异常 我们正在采取一种docker的方法来调用rest api服务来采用微服务的方法。我们正在建立应用程序容器和mysql容器之间的连接,同时我们编写了一个docker-compose文件,创建了mysql容器和应用程序容器,为这两个容器公开了端口。下面是运行docker-compose文件docker-compose

  • 问题内容: 我创建了一个小工具,过去它像一个魅力一样可以部署小型WordPress实例。看起来像这样: 但是当我现在启动它时(也许是因为docker更新到Docker 1.9.1版本,build ),它失败了 当我的猫的有项针对MySQL: 而且我能够ping通MariaDB服务器。 当我安装WordPress并多次重启后,MariaDB容器打印出来: 是哪个指示它正在运行,不是吗? 我如何获得W

  • 我正在使用docker-compose运行我的Go语言应用程序和本地机器中的单节点弹性搜索,并使用https://github.com/vishnubob/wait-for-it开始排序。在连接我的Go语言应用程序和弹性时,我面临连接被拒绝。我认为我正在将正确的ip从我的Go语言容器指向我的es容器。我认为我没有正确设置我的es容器 错误日志: 这是我的配置: docker-compose.yml