Postgresql Pgadmin4无法连接到我的postgres数据库

Postgresql Pgadmin4无法连接到我的postgres数据库,postgresql,docker-compose,pgadmin-4,Postgresql,Docker Compose,Pgadmin 4,这是我的docker-compose.yml文件: version: "3.5" services: db: image: myapp container_name: my-database environment: POSTGRES_USER: myuser POSTGRES_PASSWORD: mypasswd POSTGRES_DB: mydb expose: - "5432" ports:

这是我的docker-compose.yml文件:

version: "3.5"
services:
  db:
    image: myapp
    container_name: my-database
    environment:
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mypasswd
      POSTGRES_DB: mydb
    expose:
      - "5432"
    ports:
      - 8000:5432
    volumes:
      - /path/to/my/migrationsV1_0__audit_table.sql
      - //path/to/my/migrations/V1_1__tables.sql
  pgadmin:
    image: dpage/pgadmin4
    ports:
      - 5454:5454/tcp
    environment:
      - PGADMIN_DEFAULT_EMAIL=admin@mydomain.com
      - PGADMIN_DEFAULT_PASSWORD=postgres
      - PGADMIN_LISTEN_PORT=5454
然后我$
docker检查xxxxxxxx | grep“IPAddress”

它产生输出:

    "SecondaryIPAddresses": null,
    "IPAddress": "172.17.0.2",
            "IPAddress": "172.17.0.2",
docker compose后,我向pgadmin输入值,如下所示:

但是pgadmin给出了一个错误:

无法连接到服务器

超时已过期


这里有什么问题?

在您的配置中,PostgreSQL数据库有5432端口(这是默认值)。 你确定在这一行吗

PGADMIN_LISTEN_PORT=5454
试着用

PGADMIN_LISTEN_PORT=5432

要解决此问题,只需使用--user=root运行容器(在docker compose中使用user:root

您需要使用Postgres容器的网关地址。使用
docker inspect xxxxxxxx | grep Gateway
获取它。我猜在您的情况下,将线路更改为PGADMIN\U LISTEN\U PORT=5432时会出现
172.17.0.1

相同的错误。