Я немного потерял, почему мое приложение java не может подключиться к моей базе данных postgres. Я пытаюсь подключиться к базе данных postgres через 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"]
Вы правильно настроили файл [pg_hba.conf] (http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html), чтобы принимать соединения из контейнера докера Айпи адрес? – dic19
Думаю, что так. Это установка на моей локальной машине, которую я не модифицировал, поскольку она была первоначально создана процессом по умолчанию. Он просто имеет в нем следующее: # IPv4 локальные соединения: хост все все 127.0.0.1/32 md5 # IPv6 локальные соединения: хозяин все все :: 1/128 md5 – Andy
кажется, что вы хотите подключиться установка PostgreSQL на хосте из приложения внутри контейнера Docker. Если это так, прочитайте здесь http://stackoverflow.com/questions/31249112/allow-docker-container-to-connect-to-a-local-host-postgres-database –