从docker容器连接到postgres

时间:2016-03-31 14:29:44

标签: java postgresql docker

我有点迷失为什么我的java应用程序无法连接到我的postgres数据库。我的目标是通过jdbc连接到postgres数据库。该应用程序将在docker容器内运行。

this.connection = `DriverManager.getConnection("jdbc:postgresql://<myip>:5432/databasename", "usr", "password");`

我得到了例外:

Connection refused.  Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

当我从桌面运行应用程序时,它按预期连接。当我从docker容器中运行它时,它会失败。

我今天下午刚刚安装了docker并且已经开始运行windows,所以我的设置状态就在运行之后。这是我的Dockerfile的内容:

FROM java:8
ADD VaultServer /
EXPOSE 3971
EXPOSE 3972
ENTRYPOINT ["java", "-jar", "VaultServer.jar"]

1 个答案:

答案 0 :(得分:4)

在数据文件夹中有一个名为pg_hba.conf的文件,您必须将其配置为接受连接。所以你的pg_hba.conf文件应该有这样的一行 host all all YourDockerip/24 md5

之后配置postgresql.conf文件。您必须将listen_addresses更新为all,并确保通过删除#mark来取消注释该行。因此,listen_addresses应该如下listen_addresses = '*'