![](/img/trans.png)
[英]dial error (dial tcp 172.18.0.2:8001: connect: connection refused) when trying to run go program in one container that connects to postgres in another
[英]Unable to connect containerized app to containerized postgres, receiving dial tcp connection refused error
這個社區是我解決這個問題的最后手段,因為我已經為此奮斗了幾個小時。
我有一個運行在一個容器中的應用程序,在另一個容器中,我正在運行一個postgres數據庫。 我能夠從我的Go應用程序連接到Postgres的數據庫,只要我唯一的Postgres是一個容器內,而我去的應用程序是像往常一樣在本地運行。 但是,當我的go應用嘗試從docker容器中訪問postgres時,出現以下錯誤 :
dial tcp 127.0.0.1:8080: connect: connection refused
下面,我嘗試提供足夠的信息,但如果需要,將很樂意添加更多信息。
我有2個運行以下端口的 Docker容器:
我正在使用以下方式運行 go應用程序:
docker run -it --rm --name gographqlserver --link postgresdb:postgres -d -p 8081:8081 gogogopher;
和postgres db具有:
docker run -it --rm --name postgresdb -e POSTGRES_PASSWORD=hello123 -d -p 8080:5432 postgresimage;
可以毫無問題地啟動兩個容器。
我還嘗試了在docker network
連接兩個容器,但沒有幫助。
幫助將不勝感激!
您正在容器中使用localhost
地址,該地址與主機地址不同。 您應該執行以下操作之一:
postgresdb
容器的IP與本地端口(5432)一起使用 。 您可以使用docker inspect postgresdb
發現此IP。 postgresdb
用作主機名和本機端口(5432)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.