簡體   English   中英

連接被拒絕postgres docker

[英]connection refused postgres docker

我使用spring-boot,spring jpa數據制作了一個小型應用程序,該應用程序連接到dockerized的postgres實例,即使我嘗試通過“ psql”連接到dockerized的postgres實例,它也能正常工作。 問題是當我嘗試對我的spring-boot應用程序的映像實例進行泊塢化,並嘗試將其與dockerized postegres實例鏈接時。 我使用的docker命令是這樣

docker run -it --link mypgcontainerwithpwd:postgres --name postgresclient1 sprinbootjpa

正如我已經提到的,容器mypgcontainerwithpwd正在運行,並且可以通過本地應用程序通過psql訪問

psql -p 5555 postgres postgres

在罐子中,我將執行application.properties文件,如下所示

spring.datasource.url=jdbc:postgresql://localhost:5555/postgres
spring.datasource.username=postgres
spring.datasource.password=password
spring.jpa.generate-ddl=true

在開始階段,將引發一個異常並打印: connection refused localhost-> 5555

構建實例的dockerfile看起來像這樣

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD ./SpringJPA-PostgreSQ-0.0.1.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

我是Docker的新手,但找不到任何可解決此問題的東西,我正在Windows 10上使用Unix容器運行docker。

謝謝大家。

在屬性文件中,您指出postgres與Spring Boot應用程序(localhost)在同一容器中運行,但事實並非如此,因為它在其他容器中運行。

以此替換您的財產:

spring.datasource.url=jdbc:postgresql://postgres:5555/postgres

您還可以指向docker bridge ip,通常為172.17.0.1。

變更-

spring.datasource.url=jdbc:postgresql://localhost:5555/postgres

spring.datasource.url=jdbc:postgresql://postgres:5555/postgres

自從您使用鏈接--link mypgcontainerwithpwd:postgres啟動客戶端容器以來,這意味着您的客戶端將能夠使用別名postgres來訪問mypgcontainerwithpwd容器。 localhost意味着您的客戶端容器本身,而不是mypgcontainerwithpwd

這行得通,但我只想強調Vivek的觀點,即“ postgres”來自容器名稱,而不是用戶ID或數據庫類型。 我正在使用Docker Compose,所以這個名字來自我的docker-compose.yml文件。

暫無
暫無

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

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