簡體   English   中英

Docker Postgres 和 Adminer 接受連接但不起作用

[英]Docker Postgres and Adminer accept connection but doesn't work

在我的樹莓派 4 上,我已經安裝了 docker 和 docker-compose,現在我正在嘗試在https://hub.docker.com/_/postgres之后安裝和使用 Postgres 和 Adminer,我已經創建了 docker-compose。 yaml 文件如下:

# Use postgres/example user/password credentials
version: '3.1'

services:

  db:
    image: postgres
    restart: unless-stopped
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_USER: postgres
      POSTGRES_DB: postgres
    ports:
      - 5432:5432

  adminer:
    image: adminer
    restart: unless-stopped
    ports:
      - 8080:8080

我用它運行它

docker-compose -f docker-compose.yaml up -d

之后 DB_1 也啟動和管理,但是當我嘗試連接到http://192.168.1.38:8080/時,即使我嘗試通過 pgAdmin 連接到 postgres,我也無法訪問它。 終端日志

無法連接到服務器:連接被拒絕 (0x0000274D/10061) 服務器是否在主機“192.168.1.38”上運行並接受端口 5432 上的 TCP/IP 連接?

但是,如果我不使用 docker-compose 而只是

docker run --name postgres -d --restart unless-stopped -p 5432:5432 -e POSTGRES_PASSWORD=123456 -v ${PWD}/data:/var/lib/postgresql/data postgres

它是通過 pgAdmin 工作的

你知道我在做什么錯嗎?

更新:似乎問題出在 docker-compose 因為任何類型的 docker-compose.yml 文件都會阻止與它的連接......

使用帶有 djgango 的容器我嘗試啟動服務器並且它可以工作但是當我嘗試到達頁面時它似乎也被阻塞了運行活動 django 的終端

我嘗試連接到 django 服務器的另一個終端

當我運行 docker-compose.yaml 文件 docker -compose ps輸出是: 碼頭工人撰寫ps

sudo netstat -tulpn 截圖在此處輸入圖像描述

PgAdmin 無法訪問 5432 端口,因為您沒有公開它。 與管理員一樣,您需要在您的撰寫文件中公開您機器上的 Postgres 端口 5432。

version: '3.1'

services:

  db:
    image: postgres
    restart: unless-stopped
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_USER: postgres
      POSTGRES_DB: postgres
    ports:
      - 5432:5432

  adminer:
    image: adminer
    restart: unless-stopped
    ports:
      - 8080:8080

聚會有點晚了,但您需要做的是找出 postgres 容器的 IP 地址,並將其用作您的主機。

暫無
暫無

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

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