Docker Compose下PgAdmin连PostgreSQL报错及容器网络异常
问题解决:Docker Compose中PgAdmin连接PostgreSQL报错
getaddrinfo ENOTFOUND postgresdb 问题根源
从你提供的网络检查结果来看,Golang容器和PostgreSQL容器都未加入learning网络,导致容器间无法通过服务名postgresdb完成DNS解析,进而触发连接错误。
解决步骤
停止并清理现有容器
执行命令彻底停止并删除当前运行的容器及关联网络:docker-compose down重新启动服务
用Docker Compose重新构建并启动所有服务,确保容器正确加入指定网络:docker-compose up -d验证网络配置
再次检查learning网络,确认容器已成功加入:docker network inspect learning此时输出中的
Containers字段应显示golang_container和postgres_container的相关信息。
额外注意事项
- 若你的PgAdmin是本地安装而非Docker容器,不能用
postgresdb作为连接地址,需改用localhost加上映射的端口1234(即localhost:1234)连接PostgreSQL。 - 若PgAdmin是通过Docker Compose部署的服务,需在它的配置中添加
networks: - learning,确保和PostgreSQL容器处于同一网络,此时才能用postgresdb作为连接地址。 - 环境变量中的
DB_HOST=postgresdb配置是正确的,该值在Docker内部网络中可直接解析为PostgreSQL容器地址。
内容的提问来源于stack exchange,提问作者Kodeforce
相关产品推荐
相关产品推荐

