簡體   English   中英

無法使用 pgadmin4 從 docker 連接到本地 postgres 數據庫

[英]Could not connect to local postgres DB from docker using pgadmin4

我嘗試使用 pgadmin4 從 docker 連接到我的本地 postgres 數據庫,但由於unable to connect to server: timeout expired而失敗。 我的服務器正在運行,並且在連接到 pgadmin4 中的服務器時使用了 docker-compose.yml 文件中提到的相同屬性。

這是我的 docker-compose.yml

version: "3"

services:
web:
    build:
        context: .
    ports:
        - "8000:8000"
    volumes:
        - ./app:/app
    command: >
        sh -c "python manage.py migrate &&
               python manage.py runserver 0.0.0.0:8000"
    environment:
        - DB_HOST=db
        - DB_NAME=app
        - DB_USER=postgres
        - DB_PASS=secretpassword
    depends_on:
        - db

db:
    image: postgres:10-alpine
    environment:
        - POSTGRES_DB=app
        - POSTGRES_USER=postgres
        - POSTGRES_PASSWORD=secretpassword

這是我在 pgadmin4 中得到的錯誤的截圖

在此處輸入圖像描述

我嘗試通過檢查 docker 容器將主機地址更改為 localhost、host.docker.internal、127.0.0.1 和 IPAddress 之類的地址。 但我每次都得到相同的結果。 我還嘗試將 pgadmin4 作為服務添加到我的 docker-compose.yml 文件中並進行了嘗試,但也得到了相同的結果。

我很困惑我在這里缺少什么。

提前致謝。

首先,您沒有從 Postgres Container 導出任何端口,默認端口可能是5432 ,然后您無法連接8000 ,因為這是從您的主機綁定到您的應用程序。

這是 docker-compose 端口的一些描述

HOST : CONTAINER格式映射端口時,如果使用低於 60 的容器端口,您可能會遇到錯誤結果,因為 YAML 將 xx:yy 格式的數字解析為 base-60 值。 出於這個原因,我們建議始終將您的端口映射明確指定為字符串。

因此您可以嘗試從您的 Pgadmin 可能需要使用 5432 端口的容器中從 Postgres DB 導出端口"5432:5432"

version: "3"

services:
web:
    build:
        context: .
    ports:
        - "8000:8000"
    volumes:
        - ./app:/app
    command: >
        sh -c "python manage.py migrate &&
               python manage.py runserver 0.0.0.0:8000"
    environment:
        - DB_HOST=db
        - DB_NAME=app
        - DB_USER=postgres
        - DB_PASS=secretpassword
    depends_on:
        - db
db:
    image: postgres:10-alpine
    ports:
        - "5432:5432"
    environment:
        - POSTGRES_DB=app
        - POSTGRES_USER=postgres
        - POSTGRES_PASSWORD=secretpassword

暫無
暫無

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

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