从docker容器连接到postgres

我有点失落,为什么我的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"] 

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

之后configurationpostgresql.conf文件。 您必须将listen_addresses更新为全部,并确保通过删除#标记取消该行的注释。 所以你的listen_addresses应该看起来像这样listen_addresses = '*'