使用Docker搭建postgres数据库后无法通过指定端口连接服务器
故障排查步骤
- 确认端口占用情况
检查宿主机器的postgres映射端口是否被其他进程占用,默认该部署方案映射端口为5432,执行对应命令查看端口占用:- Linux/macOS:
lsof -i:5432 - Windows:
netstat -ano | findstr :5432
如果存在占用,可修改docker-compose.yml中postgres服务的ports配置,例如改为5433:5432,重启compose服务后使用新的映射端口连接。
- Linux/macOS:
- 校验pgAdmin连接参数
如果你使用的是compose内部署的pgAdmin服务,连接主机需要填写postgres服务的容器名(该部署方案默认服务名为postgres),端口填写容器内端口5432,不要填写宿主映射端口;如果你使用本地安装的pgAdmin连接容器数据库,才填写localhost加宿主映射端口。 - 核对认证信息
确认连接填写的用户名、密码和docker-compose.yml中配置的POSTGRES_USER、POSTGRES_PASSWORD一致,该部署方案默认用户名是postgres,默认密码是changeme,自行修改过环境变量需要同步修改连接配置。 - 检查防火墙与网络策略
确认宿主机器防火墙没有拦截postgres的映射端口,可临时关闭防火墙测试连接是否正常;如果是跨主机访问,确认两端网络连通、没有安全组规则拦截对应端口。 - 查看容器运行日志
执行docker ps确认postgres容器处于正常运行状态,执行docker logs <postgres容器ID>查看容器日志,排查是否有认证、配置类报错信息。
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

