Подключение к локальной базе данных postgres из контейнера Docker - PullRequest
0 голосов
/ 27 марта 2019

Моя задача состояла в том, чтобы написать скрипт, который получал информацию с удаленного компьютера и записывал полученную информацию в локальную базу данных Postgres.Испытания прошли успешно.Данные пришли, база данных была обновлена.

Следующим шагом было поместить этот скрипт в контейнер докера.Dockerfile и Docker-Compose.yml прилагаются ниже.Я добавляю среду с работающими программами в контейнер через Volume.Контейнер Docker запускается на локальной машине, где расположена база данных postgres.Когда я запускаю образ, я контролирую рабочий процесс программы и наблюдаю за данными, полученными с удаленного компьютера, но запись сообщений в базу данных postgres по адресу - postgres + psycopg2: // postgres: hi123 @ localhost: 5432 / Назад не происходит.

Как я могу решить проблему с подключением док-контейнера к локальной базе данных?

=---------Dockerfile---------=
FROM python:latest
WORKDIR /backend
COPY requirements.txt /backend/
RUN pip install -r requirements.txt
=----------------------------=

=-----Docker-compose.yml-----=
    version: '3'

    services:
      back:
        image: git_rep_2_back:latest
        environment:
          - PYTHONPATH=/backend/
        volumes:
          - "./Platform:/backend"
        command: bash -c "cd server && python launcher.py"
=-----------------------------=

=-------configfile_for_connection_to_database-------=

postgres+psycopg2://postgres:hi123@localhost:5432/Back

=---------------------------------------------------=

1 Ответ

0 голосов
/ 27 марта 2019

Проблема в том, что вы пытаетесь подключиться к «localhost» из контейнера. В разговорной речи «localhost» означает «этот компьютер» или «компьютер, на котором я работаю». Все запросы к localhost будут перенаправлены обратно любым процессам, прослушивающим интерфейс localhost. Внутри контейнера интерфейс localhost отличается от интерфейса localhost вне контейнера. В этом случае вам следует подумать о том, чтобы ваша база данных прослушивала 0.0.0.0 или IP-адрес вашего компьютера. Затем из контейнера вы можете подключиться к базе данных, используя IP-адрес вашего компьютера.

Надеюсь, это поможет!

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