连接Docker中的Postgres容器时遇到连接超时问题

4

所以我做的是:

docker run -d -e POSTGRES_USER=user -e POSTGRES_PASSWORD=456789 --name admin-service -p 5432:5432  postgres

当我使用docker psdocker inspect检查时

"Networks": {
              ...
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
              ...
             }
  }

以及 docker ps:

CONTAINER ID   IMAGE      COMMAND                  CREATED          STATUS          PORTS                    NAMES
6f1b75bed5b1   postgres   "docker-entrypoint.s…"   18 minutes ago   Up 18 minutes   0.0.0.0:5432->5432/tcp   admin-service

我去了PgAdmin尝试连接主机:172.17.0.2,但是连接超时,所以我把主机名改成了localhost,但是它一直显示密码认证失败,我填写了上述的用户名和密码。所以我不知道我在这里做错了什么。


如果您的pgadmin正在Docker主机上运行,则应该能够在localhost端口5432连接。 - Hans Kilian
我已经尝试了那样做,但它一直警告我认证失败,我使用user作为用户名,456789作为密码。 - Kanna
1个回答

5

找到了问题,只需要更换另一个端口,就可以解决。

docker run --name admin-service -e POSTGRES_PASSWORD=456789 -p 8001:5432 -d postgres

这对我也解决了问题。 - Bobby Connolly
这一定有原因,为什么这是唯一的解决方法... - Riza Khan
我收到了一个错误,说我的数据库已经被使用了。docker: 守护程序的错误响应: 冲突。容器名称“/crowd_db_1”已被容器“fcba543286ee3f34a1ca9ba2b63469c44f2e2f87ca4fc20c14c55ce64901422c”使用。您必须删除(或重命名)该容器才能重新使用该名称。 - Peoray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接