从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 = '*'
。