docker容器角色“postgres”中的postgres不存在

时间:2021-05-15 16:16:27

标签: postgresql docker

  1. 使用以下命令创建一个 postgres docker 容器 - docker run -v /home/ec2-user/Vteck-postgres-data:/var/lib/postgresql/data -d -e POSTGRES_USER=odoo POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name vteck-db postgres
  2. 访问 docker 容器 - docker exec -it vteck-db bash
  3. root@f1ba565db798:/# psql -U postgres psql:错误:无法连接到服务器:致命:角色“postgres”不存在

但是如果我创建 docker 容器 - docker run --rm -d -e POSTGRES_PASSWORD=root --name postgres postgres, 我可以使用 psql - U postgres 成功访问 psql。

我的第 1 步命令有问题吗?

1 个答案:

答案 0 :(得分:0)

来自postgres readme on Docker hub

<块引用> POSTGRES_USER

此可选环境变量与 POSTGRES_PASSWORD 结合使用以设置用户及其密码。此变量将创建具有超级用户权限的指定用户和具有相同名称的数据库。如果未指定,则将使用 postgres 的默认用户。

换句话说,如果您指定 POSTGRES_USER 环境变量,则不会有 postgres 用户。相反,它将使用环境变量中的名称创建一个用户(在您的情况下为 odoo)。