Jon*_*ner 2 postgresql go docker
这个社区是我解决这个问题的最后手段,因为我已经为此奋斗了几个小时。
我有一个在一个容器中运行的 go 应用程序,在另一个容器中我正在运行一个 postgres 数据库。我能够连接到Postgres的从我去应用程序数据库,只要只有我的Postgres是一个容器内,而我去的应用程序是像往常一样在本地运行。但是,当我的 go 应用程序尝试从 docker 容器中访问 postgres 时,出现以下错误:
dial tcp 127.0.0.1:8080: connect: connection refused
Run Code Online (Sandbox Code Playgroud)
下面我尝试提供足够的信息,但如果需要,我很乐意添加更多信息。
我有 2 个使用以下端口运行的 docker 容器:
我正在运行go 应用程序:
docker run -it --rm --name gographqlserver --link postgresdb:postgres -d -p 8081:8081 gogogopher;
Run Code Online (Sandbox Code Playgroud)
和 postgres 数据库:
docker run -it --rm --name postgresdb -e POSTGRES_PASSWORD=hello123 -d -p 8080:5432 postgresimage;
Run Code Online (Sandbox Code Playgroud)
两个容器都可以毫无问题地启动。
我还尝试在 a 中连接两个容器docker network,但这没有帮助。
将不胜感激!
您localhost在容器内使用的地址与您的主机地址不同。您应该改为执行以下操作之一:
postgresdb容器的 IP 与本机端口 (5432) 一起使用。您可以使用docker inspect postgresdb.postgresdb两个容器连接到同一网络时,如主机名和本地端口(5432)| 归档时间: |
|
| 查看次数: |
3296 次 |
| 最近记录: |