【问题标题】:connection refused postgres docker连接被拒绝 postgres docker
【发布时间】:2018-07-03 12:26:50
【问题描述】:

我用 spring-boot,spring jpa 数据创建了一个小应用程序,它连接到一个 dockerized postgres instace,它工作得很好,即使我尝试通过连接 'psql' 到 dockerized postgres instace 它运行良好。问题是当我尝试将我的 spring-boot 应用程序的图像实例 dockerize 并尝试将它与 dockerized postegres 实例链接时。 我使用的 docker 命令是这样的

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

正如我已经提到的,容器 mypgcontainerwithpwd 正在运行并且可以通过本地应用程序通过 psql 访问

psql -p 5555 postgres postgres

在我要执行的jar中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 新手,我没有找到任何解决问题的方法,我正在使用 unix 容器在 Windows 10 上运行 docker。

谢谢大家。

【问题讨论】:

    标签: postgresql docker spring-boot spring-data-jpa datasource


    【解决方案1】:

    这可行,但我只想强调 Vivek 的观点,即“postgres”来自容器名称,而不是用户 ID 或数据库类型。我使用的是 Docker Compose,所以这个名字来自我的 docker-compose.yml 文件。

    【讨论】:

      【解决方案2】:

      改变 -

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

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

      由于您使用链接--link mypgcontainerwithpwd:postgres 启动客户端容器,这意味着您的客户端将能够使用别名postgres 访问您的mypgcontainerwithpwd 容器。 localhost 表示您的客户端容器本身,而不是 mypgcontainerwithpwd

      【讨论】:

        【解决方案3】:

        在您的属性文件中,您声明 postgres 与您的 Spring Boot 应用程序 (localhost) 在同一个容器中运行,这是不正确的,因为它在不同的容器中运行。

        用这个替换你的财产:

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

        您也可以指向 docker bridge ip,通常是 172.17.0.1。

        【讨论】:

        • 谢谢,它可以将“localhost”更改为 172.17.0.1,但不能使用“postgres”进行更改。 docker 是否会手动更改主机文件以将 172.17.0.1 解析为“postgres”?无论如何,非常感谢。
        猜你喜欢
        • 2021-03-23
        • 2021-10-12
        • 2020-09-08
        • 2019-01-02
        • 2019-11-12
        • 2021-05-26
        • 2021-04-24
        • 1970-01-01
        • 2017-07-10
        相关资源
        最近更新 更多