Подключение к localhost: 5432 отказано. Убедитесь, что имя хоста и порт указаны правильно и что администратор почты принимает соединения TCP / IP - PullRequest
1 голос
/ 30 мая 2019

Вот мой DockerFile: -

FROM openjdk:10
ENV AQUILA_HOME /data/config
#USER root
#VOLUME /tmp
ADD a2i-web-1.0.0-SNAPSHOT.jar app.jar
#RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","app.jar"]

Мой jar - это приложение с весенней загрузкой, которое требует postgres. Я установил portgres локально, и он успешно запущен на моем локальном хосте. Я успешно строю DockerFile по команде

sudo docker build -t djtijare/a2i-web:v1 .

Но при запуске по команде

sudo docker run -p 8080:8080 -t djtijare/a2i-web:v1

дает исключение как:

Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

Я запускаю эту команду docker из каталога, содержащего DockerFile и мой jar Нужно ли устанавливать какие-либо настройки для запуска postgres?

1 Ответ

1 голос
/ 30 мая 2019

Вы не можете получить доступ к сервису, который на хосте использует localhost из контейнера, вы должны были использовать ip-адрес вашего хоста для доступа.

Это потому что: докер по умолчанию будет использовать мост, который настроитвнутренняя сеть для вашего контейнера, поэтому, когда контейнер использует localhost, это не означает хост, это означает, что сеть контейнера самостоятельно.

Если настаиваете, то уродливое решение - использовать --net=host.

Что-то вроде следующего:

sudo docker run --net=host -p 8080:8080 -t djtijare/a2i-web:v1

Затем вы можете использовать localhost для доступа к услуге хоста из контейнера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...