postgresql和pgadmin docker容器的问题

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

我正在尝试连接postgresqlpgadmin4一起工作。 pgadmin4工作正常但是当我尝试创建一个新的服务器时,我有两个问题:

  • 如果postgres容器位于不是5432的其他端口,则它不会识别该端口。它显示了这个错误:could not connect to server: Connection refused Is the server running on host "172.17.0.5" and accepting TCP/IP connections on port 5431?
  • 如果postgres容器位于5432端口,则错误为FATAL: password authentication failed for user "example"

我执行此命令来获取postgres容器:docker run -p 5431:5432 --name postgres2 -e POSTGRES_PASSWORD=ad1234 -d postgres

我尝试,在stackoverflow中跟随其他响应,添加此命令-c"listen_addresses='*'",我也输入配置文件,但没有这个工作给我。

希望你能帮助我,谢谢。

编辑[已解决]

好的,我解决了,这是我的一个重大失败。我使用的是172.17.0.5(IP容器地址),我需要用来连接的是172.17.01(网关)。谢谢你的时间。

postgresql docker pgadmin pgadmin-4
1个回答
0
投票

我以这种方式重现你的场景:

# docker run -p 5431:5432 --name postgres2 -e POSTGRES_PASSWORD=ad1234 -d postgres
# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
d4030c577a24        postgres            "docker-entrypoint.s…"   2 minutes ago      Up 2 minutes       0.0.0.0:5431->5432/tcp   postgres2

# sudo -u postgres psql -h localhost -p 5431
could not change directory to "/root": Permission denied
Password: 
psql (10.5, server 11.2 (Debian 11.2-1.pgdg90+1))
WARNING: psql major version 10, server major version 11.
         Some psql features might not work.
Type "help" for help.

postgres=# CREATE DATABASE mytestdb;
CREATE DATABASE
postgres=# \q

现在启动pgadmin的docker并能够连接到postgresql:

docker run -p 80:80 --link postgres2 -e "[email protected]" -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" -d dpage/pgadmin4

使用上面的命令,您可以将postgres2 docker链接到pgadmin docker,然后在pgadmin4上创建连接,您应该使用:

  • 主机名/地址:postgres2
  • 港口:5432
  • 维护数据库:postgres
  • 用户名:postgres

有了这个,我从pgadmin4连接到Postgres

据我所知,docker PostgreSQL默认使用localhost only连接,如果你想添加远程连接,你应该在postgresql.conf中添加“listen_addresses ='*'”

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