簡體   English   中英

從Docker容器連接到本地postgres數據庫

[英]Connecting to the local postgres database from the Docker container

我的任務是編寫一個腳本,從遠程計算機接收信息,並將收到的信息記錄在本地的Postgres數據庫中。 測試成功了。 數據來了,數據庫已更新。

下一步是將此腳本放在docker容器中。 Dockerfile和Docker-Compose.yml附在下面。 我通過Volume將環境與工作程序添加到容器中。 docker容器在postgres數據庫所在的本地計算機上運行。 當我運行圖像時,我控制程序的工作流程並觀察從遠程計算機接收的數據,但是將消息寫入地址的postgres數據庫 - postgres + psycopg2: // postgres: hi123 @ localhost: 5432 /返回不會發生。

如何解決將docker容器連接到本地數據庫的問題?

=---------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

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

問題是您正在嘗試從容器內連接到“localhost”。 在口語中,“localhost”指的是“這台計算機”或“我正在處理的計算機”。 對localhost的所有請求都將重定向回在localhost接口上偵聽的任何進程。 內的容器,該localhost接口是從不同的localhost在容器的外部。 在這種情況下,您應該考慮讓數據庫監聽0.0.0.0或您機器的IP地址。 然后,從容器中,您可以使用計算機的IP地址連接到數據庫。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM