Ich bin ein wenig verloren, warum meine Java-Anwendung keine Verbindung zu meiner Postgres-Datenbank herstellen kann. Ich bin bestrebt, eine Verbindung zu einer Postgres-Datenbank über JDBC herzustellen. Die Anwendung soll in einem Andock-Container ausgeführt werden.Verbinden mit Postgres aus einem Docker-Container
this.connection = `DriverManager.getConnection("jdbc:postgresql://<myip>:5432/databasename", "usr", "password");`
Ich erhalte die Ausnahme:
Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
Wenn ich die Anwendung von meinem Desktop laufen, verbindet es wie erwartet. Wenn ich es im Andock-Container ausfühle, schlägt es fehl.
Ich habe gerade Docker heute Nachmittag installiert und lief durch die ersten Schritte für Windows, so ist mein Setup-Status direkt nach dem Ausführen. Hier ist der Inhalt meiner Dockerfile:
FROM java:8
ADD VaultServer/
EXPOSE 3971
EXPOSE 3972
ENTRYPOINT ["java", "-jar", "VaultServer.jar"]
Haben Sie die Datei [pg_hba.conf] (http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html) korrekt konfiguriert, um Verbindungen vom Docker-Container zu akzeptieren IP Adresse? – dic19
Ich denke schon. Es ist eine Installation auf meinem lokalen Rechner, die ich nicht geändert habe, seit sie ursprünglich vom Standardprozess erstellt wurde. Es hat gerade folgendes drin: # IPv4 lokale Verbindungen: Host alle alle 127.0.0.1/32 md5 # IPv6 lokale Verbindungen: Host alle alle :: 1/128 md5 – Andy
Es scheint, dass Sie eine Verbindung herstellen möchten eine PostgreSQL-Installation auf dem Host über eine Anwendung in einem Docker-Container. Wenn das der Fall ist, lesen Sie hier http://stackoverflow.com/questions/31249112/allow-docker-container-to-connect-to-a-local-host-postgres-database –