【问题标题】:docker pgadmin connect to Postgres failingdocker pgadmin 连接到 Postgres 失败
【发布时间】:2022-01-07 19:58:59
【问题描述】:

我正在尝试在 docker 上运行 pgadmin 和 postgres。这两项服务似乎都有效。但是能够通过 pgadmin 连接到 postgres。即使在输入您在 docker-compose 文件中看到的密码后,返回密码也不正确。

码头工人撰写

services:
  postgres:
    container_name: postgres
    image: postgres
    environment:
      POSTGRES_USER: danny329
      POSTGRES_PASSWORD: danny329
      PGDATA: /data/postgres
    volumes:
      - postgres:/data/postgres
    ports:
      - "5432:5432"
    networks:
      - postgres
    restart: unless-stopped

  pgadmin:
    container_name: pgadmin_container
    image: dpage/pgadmin4
    environment:
      PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin4@pgadmin.org}
      PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
      PGADMIN_CONFIG_SERVER_MODE: 'False'
    volumes:
      - pgadmin:/var/lib/pgadmin

    ports:
      - "5050:80"
    networks:
      - postgres
    restart: unless-stopped

networks:
  postgres:
    driver: bridge

volumes:
  postgres:
  pgadmin:

错误截图:

注意:我使用的密码是'danny329'

【问题讨论】:

  • 您在 pgadmin 上使用的数据库主机名是什么?
  • 我也将 postegres 作为服务运行......所以很难找到主机名,但找到了一个提到使用 host.docker.internal 的解决方案。如果您知道任何其他查找主机名的方法,那将很有帮助。
  • 当你浏览到 pgadmin 主页时,会有一个对话框询问你数据库主机名。你为这个字段添加了什么?
  • 我没有收到这样的对话框,只是输入密码。
  • This 是指定数据库主机名的(连接选项卡)对话框。

标签: postgresql docker docker-compose pgadmin-4


【解决方案1】:

由于您的 postgres 容器和 pgadmin 容器都在同一个 Docker 桥接网络上运行,您可以使用它们的容器名称将它们相互连接。欲了解更多信息,请参阅Networking in Compose

在这种情况下,对于 pgadmin,您可以将主机名设置为 postgres

【讨论】:

  • 非常感谢您提供容器名称,这很有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-21
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多