2016-03-31 12 views
1

なぜ私のJavaアプリケーションが私のポストグルデータベースに接続できないのでしょうか?私はjdbcを介してpostgresデータベースに接続することを目指しています。アプリケーションは、ドッカーコンテナ内で実行されます。私は例外を取得していますドッカーのコンテナからポストグルに接続する

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. 

、それが接続されています。私がドッカーのコンテナからそれを実行すると、失敗します。

私は今朝のドッカーをインストールして、ウィンドウの開始操作を実行しました。そのため、セットアップ状態は実行中です。ここに私のDockerfileの内容です:

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

ドッカーコンテナからの接続を受け入れるために、[pg_hba.conf](http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html)ファイルを適切に設定しましたか? IPアドレス? – dic19

+0

そうだと思います。それは私のローカルマシン上のインストールであり、私はそれが最初にデフォルトプロセスによって作成されて以来変更していません。ちょうどそれには次の通りです: #IPv4のローカル接続: ホストすべてすべて127.0.0.1/32 md5の #IPv6のローカル接続:すべてすべて ホスト:: 1/128 MD5 – Andy

+0

接続したいようですDockerコンテナ内のアプリケーションからのホスト上のPostgreSQLインストール。その場合は、こちらを参照してくださいhttp://stackoverflow.com/questions/31249112/allow-docker-container-to-connect-to-a-local-host-postgres-database –

答えて

4

データフォルダの中にあなたが接続を受け入れるようにそれを設定する必要がありpg_hba.confというファイルがあります。したがって、pg_hba.confファイルには次のような行があります。 host all all YourDockerip/24 md5

その後、postgresql.confファイルを設定します。 listen_addressesをallに更新し、#マークを削除してその行のコメントを外してください。したがって、listen_addressesはこのようになります。listen_addresses = '*'

+0

申し訳ありません私はまだ私の頭を得ていますドッカーの周り。ドッカーマシン用のIP、またはコンテナ用のIPを意味しますか?後者の場合私は最終的にこれらのコンテナを上下に動的に回転させようとしているので、ドッカーから/すべてを聞くための何らかの方法があります。 – Andy

+1

すべてのIPアドレスを聞くには '0.0.0.0/0'を使うことができます。ファイルを設定した後、postgreSQLサーバを再起動しましたか? –

関連する問題