Docker部署PostgreSQL遇connection refused连接失败求助
核对pgAdmin连接参数
在pgAdmin添加服务器时,主机名填localhost,端口必须填5433(不是容器内部的5432),同时确认用户名、密码和docker-compose里配置的PostgreSQL初始账号完全一致。确认PostgreSQL容器状态
执行docker-compose ps查看容器状态,要是显示Exited或异常,直接看容器日志找问题——比如日志里出现FATAL: password authentication failed就是账号密码不匹配;要是有could not bind to address 0.0.0.0:5432,得检查容器内部有没有端口冲突(不过你映射的是5433到5432,这种概率低)。排查本地防火墙/安全软件
本地防火墙或杀毒软件可能拦截了5433端口的请求,先临时关闭试试,能连上的话就给5433端口加个放行规则。检查docker-compose配置正确性
确保PostgreSQL服务的环境变量配置无误,示例配置如下:services: postgres: image: postgres:latest environment: POSTGRES_USER: your_user POSTGRES_PASSWORD: your_password POSTGRES_DB: your_default_db ports: - "5433:5432" volumes: - postgres_data:/var/lib/postgresql/data volumes: postgres_data:重点确认
POSTGRES_USER、POSTGRES_PASSWORD这些变量没有拼写错误,容器启动时会用这些创建初始账号。用本地客户端直接测试连接
用psql命令测试:psql -h localhost -p 5433 -U your_user -d your_default_db,能连上说明PostgreSQL容器没问题,问题出在pgAdmin配置;连不上的话,要么容器本身有问题,要么端口映射没生效。验证Docker端口映射
执行docker port <你的postgres容器名>,正常输出应该是0.0.0.0:5433->5432/tcp或[::]:5433->5432/tcp,如果不是,说明端口映射配置错了,重启容器试试。
内容的提问来源于stack exchange,提问作者xJosAntonio A

