pgAdmin Docker 错误:“用户名或密码不正确”

问题描述 投票:0回答:5

有一些简单的 docker-compose.yml 文件配置,但我不知道为什么我不能使用 [email protected] 作为电子邮件和 admin 作为密码登录 pgAdmin。是否需要更多配置或者我使用了错误的凭据?

version: "3.7"

services:
    db:
        image: postgres:13.1
        restart: unless-stopped
        env_file:
            - ./.env
        ports:
            - 5432:5432
        volumes:
            - db-data:/var/lib/postgresql/data
            - ./init-db.sh:/docker-entrypoint-initdb.d/init-database.sh
        networks:
            - appNetwork

    pgAdmin:
        container_name: pgAdmin
        # restart: unless-stopped
        image: dpage/pgadmin4:4.29
        environment:
            PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:[email protected]}
            PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
            PGADMIN_LISTEN_PORT: 5050
        volumes:
            - pgadmin:/root/.pgadmin
        ports:
            - "5050:5050"
        depends_on:
            -   db
        networks:
            - appNetwork

volumes:
    db-data:
    pgadmin:

networks:
    appNetwork:
        driver: bridge

docker pgadmin-4
5个回答
16
投票

您定义

PGADMIN_DEFAULT_EMAIL
PGADMIN_DEFAULT_PASSWORD
并使用持久卷
pgadmin
。也许您之前使用不同的电子邮件/密码创建了一个实例,该实例已保留在
pgadmin
卷中,并且不会被您新定义的变量覆盖。

您可以尝试使用以下方法删除堆栈容器和卷:

# WARNING: this will delete all containers and volumes
# including pg_data volume and pgadmin volume
# make sure to make a backup if needed
docker-compose down -v 

或者,您可以停止 pgAdmin 容器并专门删除

pgadmin
卷:

docker-compose rm -s pgAdmin

# Replace project_name by your Docker Compose project name
# Use docker volume ls to show all volumes and choose the proper one
docker volume rm project_name_pgadmin

然后重新创建

pgAdmin
容器和卷(以及必要时的其他组件):

docker-compose up -d

2
投票

也许您已经使用过服务pgAdmin及其相关容器:container_name:pgAdmin

解决方案是给它们起其他名称,如下所示:

pgAdminNew:
    container_name: pgAdmin_new
    # restart: unless-stopped
    image: dpage/pgadmin4:4.29
    environment:
        PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:[email protected]}
        PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
        PGADMIN_LISTEN_PORT: 5050
    volumes:
        - pgadmin:/root/.pgadmin
    ports:
        - "5050:5050"
    depends_on:
        -   db
    networks:
        - appNetwork

1
投票

除了上述所有解决方案之外,请确保 Postgres 没有在 Docker 之外的本地计算机上运行,因为它可能与 Docker 中的 Postgres 实例发生冲突


0
投票

我通过先删除容器,然后删除卷来解决这个问题。 在您的情况下,删除名为

pgadmin
的卷。


0
投票

对我来说,它不适用于以下任何用户:

‘PGADMIN_DEFAULT_EMA[email protected]’
'[email protected]'

然后我用了另一个:

'[email protected]'

它奏效了。不知道是什么原因,可能是其他两个太常见了。

© www.soinside.com 2019 - 2024. All rights reserved.