簡體   English   中英

無法將容器化的應用程序連接到容器化的postgres,收到撥號TCP連接拒絕錯誤

[英]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容器:

  • 轉到應用程序,端口信息:8081 / tcp-> 0.0.0.0:8081
  • postgres db,端口信息:5432 / tcp-> 0.0.0.0:8080

我正在使用以下方式運行 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地址,該地址與主機地址不同。 您應該執行以下操作之一:

  • 使用應用程序容器中的實際主機IP
  • postgresdb容器的IP與本地端口(5432)一起使用 您可以使用docker inspect postgresdb發現此IP。
  • 將兩個容器連接到同一網絡時,將postgresdb用作主機名和本機端口(5432)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM