作为一个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
但是当我在pgAdmin上使用与psql相同的参数创建服务器时,会出现以下错误。
无法连接到服务器:
无法连接到服务器:连接被拒绝。服务器是否运行在主机“localhost”(127.0.0.1)上,并接受端口5432上的TCP/IP连接? 无法连接到服务器:地址不可用。服务器是否运行在主机“localhost”(::1)上,并接受端口5432上的TCP/IP连接?
我成功地通过容器给出的IPAddress连接上了数据库。docker inspect
顺便说一下,我检查过postgresql.conf并确认了listen_addresses = '*'
并且pg_hba.conf包含 host all all all md5
。
但是我不明白,为什么我不能使用本地主机地址?为什么docker会给我一个不是本地的地址呢?