关于postgresql和pgadmin docker容器的问题[英] Problem with postgresql and pgadmin docker containers

问题描述

我正在尝试连接postgresql和pgadmin4一起工作. pgadmin4工作正常,但是当我尝试创建新服务器时,我有2个问题:

  • 如果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(网关). 谢谢你的时间.

推荐答案

我以这种方式重现了您的方案:

# 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 "PGADMIN_DEFAULT_EMAIL=user@domain.com" -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" -d dpage/pgadmin4

使用上述命令,您可以将Postgres2 Docker链接到PGADMIN DOCKER,然后在PGADMIN4上创建连接时,您应该使用:

  • 主机名/地址:Postgres2
  • 端口:5432
  • 维护数据库:Postgres
  • 用户名:Postgres

与此相关,我已经连接到PGADMIN4

的Postgres

据我所知,Docker PostgreSQL默认情况下仅带有Localhost连接,如果要添加远程连接,则应将" erlis_addresses ='*'"添加到Postgresql.conf

本文地址:https://www.itbaoku.cn/post/1739744.html